Ich folge dieser Bash-Shell-Skriptanleitung:
Im Abschnitt Numerische Vergleiche wird ein Beispiel angeführt:
anny > num=`wc -l work.txt`
anny > echo $num
201
anny > if [ "$num" -gt "150" ]
More input> then echo ; echo "you've worked hard enough for today."
More input> echo ; fi
Was oben zu passieren scheint, ist, dass wir eine Folge von Befehlen in einer Bash-Variablen speichern und dann das Echo für die Variable aufrufen. Was zu passieren scheint, ist, dass die Zeichenfolge ausgewertet und der Befehl wc ausgeführt wird und die Zeilenanzahl an das steuernde Terminal zurückgibt.
Ok, also starte ich mein Terminal in Ubuntu 12.04 und versuche etwas Ähnliches:
$ touch sample.txt && echo "Hello World" > sample.txt
$ cat sample.txt
Hello World
$ num='wc -l sample.txt'
echo $num
wc -l sample.txt
Warten Sie eine Sekunde, die die Zeichenfolge nicht ausgewertet hat, und geben Sie die Zeilenanzahl zurück. Das hat die Zeichenfolge nur zum Terminal zurückgesendet. Warum habe ich unterschiedliche Ergebnisse erzielt?
wc -l work.txt
, sondern die Nummer 201.