Tôi đang làm theo hướng dẫn kịch bản bash shell này:
Trong phần So sánh số, nó trích dẫn một ví dụ:
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
Điều dường như xảy ra ở trên là chúng ta lưu trữ một chuỗi các lệnh trong một biến bash và sau đó chúng ta gọi echo trên biến đó. Điều dường như xảy ra là chuỗi được ước tính và lệnh wc được thực thi và trả về số dòng cho thiết bị đầu cuối điều khiển.
Ok, vì vậy tôi khởi chạy thiết bị đầu cuối của mình trong Ubuntu 12.04 và thử một cái gì đó tương tự:
$ touch sample.txt && echo "Hello World" > sample.txt
$ cat sample.txt
Hello World
$ num='wc -l sample.txt'
echo $num
wc -l sample.txt
Đợi một chút, điều đó không đánh giá chuỗi và trả về số dòng. Điều đó chỉ lặp lại chuỗi trở lại thiết bị đầu cuối. Tại sao tôi nhận được kết quả khác nhau?
wc -l work.txt
, thay vào đó, nó được gán số 201.