Lire la saisie de l'utilisateur avec les espaces dans les csh Script Shell

J'ai un scénario où l'utilisateur doit être en mesure de saisir une chaîne de caractères avec des espaces. Pour l'instant j'ai:

#bin/csh

echo "TEST 1"
echo -n "Input : "
set TEST = $<

echo "Var | " $TEST

set TEST=`echo $TEST`

echo "Var after echo | " $TEST

set TEST=`echo $TEST | sed 's//_/g'`

echo "Var after change | " $TEST

Si je entrer la chaîne de caractères "r r r" à "l'entrée", $TEST ne prendrait "r". Je veux être en mesure de définir $TEST "r r r". Est-ce possible?
Si je entrer une chaîne comme "1 1 1", j'obtiens une erreur:

ensemble: nom de Variable doit commencer par une
lettre.

Quelle est la raison?

Puis-je vous faqs.org/faqs/unix-faq/shell/csh-whynot ? Il ne suffit pas à résoudre votre problème, mais il illustre les différentes raisons pour lesquelles les csh n'est pas la meilleure coque pour la programmation 🙂
Oui. J'ai l'habitude d'utiliser sh. Dans ce cas, j'ai besoin de naviguer dans un répertoire différent, et encore là quand le script existe. Je fais cela par l'aide de la source (alias aenew "source ~/scripts/aenewc'). Donc, si l'utilisateur travaille dans un shell c, le script devra également être en "csh". C'est la raison pour laquelle j'ai eu recours à csh dans ce cas.
Oui. J'ai l'habitude d'utiliser sh. Dans ce cas, j'ai besoin de naviguer dans un répertoire différent, et encore là quand le script existe. Je fais cela par l'aide de la source (alias aenew "source ~/scripts/aenewc'). Donc, si l'utilisateur travaille dans un shell c, le script devra également être en "csh". C'est la raison pour laquelle j'ai eu recours à csh dans ce cas.

OriginalL'auteur Gayan | 2009-04-22