Ich habe ein Skript, in dem der Benutzer sollte eine Zeichenfolge mit Leerzeichen eingeben kann. Bisher habe ich:liest Benutzereingabe mit Leerzeichen in csh Shell Script
#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
Wenn ich die Zeichenfolge "r r r" auf "Eingang" eingeben, würde $ TEST nur "r" nehmen. Ich möchte $ TEST auf "r r r" setzen können. Ist das möglich? Wenn ich eine Zeichenfolge wie „1 1 1“ eingeben bekomme ich einen Fehler:
set: Variable name must begin with a letter.
Was ist der Grund dafür?
Kann ich zeigen Ihnen http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/? Es wird nicht Ihr Problem lösen, aber es zeigt verschiedene Gründe, warum csh :-) –
nicht die beste Schale für die Programmierung ist Ja. Normalerweise benutze ich sh. In diesem Fall muss ich zu einem anderen Verzeichnis navigieren und immer noch dort sein, wenn das Skript existiert. Ich mache das mit der Quelle (alias aenew 'source ~/scripts/aenewc'). Wenn der Benutzer also in einer c-Shell arbeitet, müsste das Skript auch in "csh" sein. Das ist der Grund, warum ich in diesem Fall auf csh zurückgegriffen habe. – Gayan
Ja. Normalerweise benutze ich sh. In diesem Fall muss ich zu einem anderen Verzeichnis navigieren und immer noch dort sein, wenn das Skript existiert. Ich tue dies mithilfe von Quelle (alias aenew 'source ~/scripts/aenewc'). Wenn der Benutzer also in einer c-Shell arbeitet, müsste das Skript auch in "csh" sein. Das ist der Grund, warum ich in diesem Fall auf csh zurückgegriffen habe. – Gayan