Sto seguendo questa guida allo scripting della shell bash:
Nella sezione Confronti numerici, cita un esempio:
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
Ciò che sembra accadere sopra è che memorizziamo una stringa di comandi in una variabile bash e quindi invochiamo l'eco sulla variabile. Quello che sembra accadere è che la stringa venga valutata e il comando wc venga eseguito e restituisca il conteggio delle righe al terminale di controllo.
Ok, quindi lancio il mio terminale in Ubuntu 12.04 e provo qualcosa di simile:
$ touch sample.txt && echo "Hello World" > sample.txt
$ cat sample.txt
Hello World
$ num='wc -l sample.txt'
echo $num
wc -l sample.txt
Aspetta un secondo, che non ha valutato la stringa e restituisce il conteggio delle righe. Ciò ha appena fatto eco alla stringa al terminale. Perché ho ottenuto risultati diversi?
wc -l work.txt
, invece è assegnato il numero 201.