Csh Problem mit Illegal variable name
Ok, das ist mein ganze code, den ich habe einen neuen Fehler: Illegal variable name.
Wenn ich die Datei ausführen mit: csh filename.sh
Ergebnis ist: Illegal variable name.
Ich denke, dass das problem mit der Teil: während ( $? == 1 ) #!/bin/sh
set quitter = "N"
# Boucle sur la condition d'arret du script:
while ( $quitter == "N" )
# Saisie du nom de l'utilisateur :
echo "Quel utilisateur ?"
set a = $<
# Mettre le résultat de la commande ps -u
# dans un fichier quelque soit le résultat (juste ou faux) :
ps -u $a >&fichier
# La varible $? vaudra 1 si la dernière commande qui a été éxcuter
# a retourné une erreur, 0 sinon.
# On boucle donc j'usqu'a ce que le nom d'utilisateur soit correct:
while ( $? == 1 )
echo -n "Nom d'utilisateur innexistant, entrez un autre :"
set a = $<
ps -u $a >&fichier
commande=$(tail -$i tempfile|head -1|cut -d" " -f2)
let i=i+1
echo -n " $commande : "
case $etat
in
D) echo "endormi => ininterruptible"
S) echo "endormi"
R) echo "en cours"
T) echo "stoppe"
Z) echo "zombi"
*) echo "inconnu"
esac
end
# Suppression du fichier qui a servi aux tests
rm fichier;
echo -n "voulez-vous quitter ? (O/N):";set quitter = $<
end
pls Antworten Sie mir .
InformationsquelleAutor Os M Torvalds | 2012-12-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code scheint zu sein, eine Mischung aus bash und csh UND durch die erste öffnung (shebang) müssen Sie
#!/bin/sh
, das ist definitiv nicht csh, und mehrdeutig ist, wie die alt-Linie sh=originaUnix*Bourne*Shell-ODER ein linux-system kann ein link auf /bin/bash als /bin/sh für Bequemlichkeit Willen.Die Fehlermeldung sagt Ihr das richtige
$?
ist keine gültige variable in der csh, die Sie wollen, verwenden Sie die entsprechende$status
.Ich nicht haben Zugang zu einem csh zum ausführen von code, aber ich sehe einige Dinge, die ich Frage, und einige, die ich kenne sind falsch, für die csh-syntax.
nicht funktioniert, versuchen Sie
csh Fall sytnax ist
und ich bin skeptisch
Was habt Ihr da? Wenn Sie auf die Datei schreiben
fichier
, ich weiß nicht wo du liest. Welchem Zweck soll es dienen?Wenn Sie weitere Hilfe benötigen, mit diesem, editieren Sie bitte Ihre Frage zu die genaue Fehlermeldung (formatiert als code).
P. S.
Wenn Sie benötigen, um zu verwenden, Unix-scripting in der Zukunft, du bist insgesamt auf die Marktfähigkeit verbessert werden, indem die Verwendung von csh und der Umwandlung in ksh/bash. Wie viel code ist
bash
Sie wäre besser gedient werden, ändern Sie die erste Zeile zu#!/bin/bash
und dann die Erforschung und Behebung der daraus resultierenden Fehlermeldungen.IHTH
InformationsquelleAutor shellter
Zunächst ändern
#!/bin/sh
zu#!/bin/csh
(nur der Vollständigkeit halber).Dann ändern
zu
auch Ihre
let i=i+1
sollteset i = 0
oben und nach Stationen verwenden@ i++
zu erhöhen.Der nächste Fehler ist, dass
$etat
ist nicht definiert.Auch Csh verwendet
switch() case
.Am besten wäre es, Sie haben einen Blick auf http://www.grymoire.com/Unix/Csh.html oder http://faculty.plattsburgh.edu/jan.plaza/computing/help/tcsh.htm für weitere Informationen über csh-Skripten.
InformationsquelleAutor dwalter