Je suis ce guide de script shell bash:
Dans la section Comparaisons numériques, il cite un exemple:
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
Ce qui semble se produire ci-dessus, c'est que nous stockons une chaîne de commandes dans une variable bash, puis nous invoquons l'écho sur la variable. Ce qui semble se produire, c'est que la chaîne est évaluée et que la commande wc est exécutée et renvoie le nombre de lignes au terminal de contrôle.
Ok, donc je lance mon terminal dans Ubuntu 12.04 et j'essaye quelque chose de similaire:
$ touch sample.txt && echo "Hello World" > sample.txt
$ cat sample.txt
Hello World
$ num='wc -l sample.txt'
echo $num
wc -l sample.txt
Attendez une seconde, cela n'a pas évalué la chaîne et renvoyé le nombre de lignes. Cela vient de renvoyer la chaîne au terminal. Pourquoi ai-je obtenu des résultats différents?
wc -l work.txt
, mais au numéro 201.