/ / erreur inconnue dans le shell - scripts, csh, tcsh

erreur inconnue dans le shell - scripts, csh, tcsh

quelqu'un peut-il m'expliquer ce que signifie cette erreur:

 > ./rank lines.in
"nknown option: `-
Usage: tcsh [ -bcdefilmnqstvVxX ] [ argument ... ].

c'est mon rang de script:

#! /bin/tcsh -f
set line = `cat ${1}`
echo $line

Je pense que le problème que j'ai est avec la première rangée #! /bin/tcsh -f Je travaille sur Windows! Mais après avoir écrit le script sous Windows Editor, je l’ai converti en utilisant le classement dos2unix, quel peut être le problème, merci d’avance pour toute aide

Réponses:

2 pour la réponse № 1

Je ne pense pas que votre dos2unix travaillé. Il semble que vous ayez encore un r à la fin de la ligne de hachage que cela ne lui plait pas. On dirait que ça se voit /bin/tcsh -fr, interprétant cela comme /bin/tcsh -f -r, puis en essayant d’imprimer le message d’erreur:

Unknown option: `-r"

le r provoque la citation de fin à apparaître au début de la ligne. Si vous voulez voir exactement ce qui se trouve dans votre fichier, essayez cat -A ./rank pour imprimer tous les caractères cachés. Vous verrez probablement

#! /bin/tcsh -f^M$

0 pour la réponse № 2

J'ai installé tcsh sur ma machine Linux et ai exécuté ce script et cela a fonctionné, donc je suppose que vos sauts de ligne sont incorrects.

L’erreur semble simplement signifier que lorsque le tcshshell est appelé il reçoit des paramètres non valides. Je pense que ce qui est obtenu est le script entier en tant que liste de paramètres. J'ai essayé de changer -f en -g (non reconnu comme paramètre tcsh) et j'ai obtenu:

Unknown option: `-g"
Usage: tcsh [ -bcdefilmnqstvVxX ] [ argument ... ].

Remarquez comment il me dit toujours le nom du paramètre invalide?

Soit ça ou votre tcsh commence mal. Il est possible de donner des paramètres par défaut lors du démarrage d’un shell tcsh. Avez-vous essayé d'en commencer un?

Mais vraiment, la seule raison pour apprendre tcsh seraitsi vous avez besoin de maintenir certains vieux scripts tcsh. Et même dans ce cas, je commencerais par les convertir dans un autre langage de script, si possible. Si vous voulez apprendre les scripts shell, essayez bash ou bourne shell. Il y a beaucoup de les raisons pourquoi tcsh va juste vous rendre fou.