En espérant l'aide de toute personne ici, merci d'avance. Je T.csh qui ressemble à ceci:
#! /bin/csh
set a="01 02 03 04 05 06 07 08 09 10 11 12 13"
set b="14 15 16 17 18 19 20 21 22 23 24 25"
set c="01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25"
set X = `grep $1 EOL.txt | head -n1 | cut -d- -f1`
printf "$X\n$2\n$3\nYYYY\n1\nN\n"
Les variables a, b et c sont éventuellement utilisés comme 3ème argument dans la ligne de printf. Le problème est, chaque fois que j'essaie d'exécuter le script, il a montré une variable indéfinie. Ces lignes de commande définies fonctionnent chaque fois que je les ai assignées de manière interactive, mais dans le script, cela semble ne pas fonctionner. Peut-être que j'ai besoin de l'initialiser mais je n'ai pas compris comment. Juste nouveau à cette chose de programmation, j'espère que quelqu'un ici peut m'aider. Merci beaucoup d'avance.
Voici l'exécution de l'échantillon et erreur pour votre référence:
CAT-46{bc2}40>set a="01 02 03 04 05 06 07 08 09 10 11 12 13"
CAT-46{bc2}41>./T.csh 4773 XXXX.XX "$a"
62
XXXX.XX
01 02 03 04 05 06 07 08 09 10 11 12 13
82869
1
N
CAT-46{bc2}42>unset a
CAT-46{bc2}43>./T.csh 4773 XXXX.XX "$a"
a: Undefined variable
CAT-46{bc2}44>
Si i définir les variables manuellement, il est OK, mais quand j'ai appelé pour lui à partir du script, la signalisation d'erreur variable non définie.
Mike
Collez l'erreur exacte que vous voyez dans votre question. – codeforester
ET affichez une utilisation incluant $ a, $ b, $ c. Basé sur un autre Q hier pour csh, je crois que csh étouffe sur les espaces dans les valeurs pour les affectations de variables. (même quand ils sont cités). Donc, assurez-vous que vous pouvez faire une utilisation simple de l'une de ces vars (avec des espaces en eux) avant de passer beaucoup de temps à ce sujet. Voir http://grymoire.com/unix/csh.html pour un tutoriel csh et une discussion sur les raisons pour lesquelles vous voudrez probablement utiliser 'bash' si vous le pouvez. Bonne chance. – shellter