Forum Programmation.shell tcsh et interprétation de variables

Posté par  .
Étiquettes : aucune
0
6
déc.
2007
Bonjour,

j'ai un petit problème débile dont je n'arrive pas à me dépatouiller :

$ set var1 = /home/toto
$ echo $var1
/home/toto

$ set var2 = '$var1/documents'
$ echo $var2
$var1/documents

Pour l'instant tout va bien (je récupère en fait $var2 d'ailleurs, mais c'est pour l'exemple).

Comment faire maintenant pour avoir simplement $var3 = /home/toto/documents ?

$ eval $var2
/home/toto/documents: Command not found.

Si $var2 ne contient qu'une seule chaîne de caractères, je peux récupérer ce qu'il y a avant ":", mais il faut que ça marche pour plusieurs chaînes contenues dans $var2...

Merci d'avance, je sèche !
  • # simplement...

    Posté par  . Évalué à 1.

    en ecrivant

    var3=/home/toto/document

    (sans le $ devant le var3)

    enfin je crois.
    • [^] # Re: simplement...

      Posté par  . Évalué à 1.

      Ah ça, si j'écris directement à la main ma chaîne de caractères, j'aurai bien à la fin ce que je veux...

      ­La faculté de citer est un substitut commode à l'intelligence -- Somerset Maugham

  • # peut être comme ca:

    Posté par  . Évalué à 3.

    eval echo $var2
    • [^] # Re: peut être comme ca:

      Posté par  . Évalué à 3.

      L'explication:

      Le shell interprète la première expression de la ligne comme une commande, et la suite comme les arguments. La substitution de variable est bien faite, mais le shell tente d'exécuter la chaine résultante comme une commande.
    • [^] # Re: peut être comme ca:

      Posté par  . Évalué à 1.

      Merci beaucoup ! ça marche...

      ­La faculté de citer est un substitut commode à l'intelligence -- Somerset Maugham

      • [^] # Re: peut être comme ca:

        Posté par  . Évalué à 1.

        Punaise, totof2000 a encore frappé, moi aussi je voulais donner cette solution...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.