Saya mengikuti panduan skrip bash shell ini:
Di bagian Perbandingan Numerik, ia mengutip sebuah contoh:
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
Apa yang tampaknya terjadi di atas adalah kita menyimpan serangkaian perintah dalam variabel bash dan kemudian kita memanggil gema pada variabel. Apa yang tampaknya terjadi adalah string dievaluasi dan perintah wc dieksekusi dan mengembalikan jumlah baris ke terminal pengendali.
Ok, jadi saya meluncurkan terminal saya di Ubuntu 12.04 dan mencoba sesuatu yang serupa:
$ touch sample.txt && echo "Hello World" > sample.txt
$ cat sample.txt
Hello World
$ num='wc -l sample.txt'
echo $num
wc -l sample.txt
Tunggu sebentar, itu tidak mengevaluasi string dan mengembalikan jumlah baris. Itu baru saja menggemakan string kembali ke terminal. Mengapa saya mendapatkan hasil yang berbeda?
wc -l work.txt
, melainkan diberi nomor 201.