我正在遵循此bash shell脚本指南:
在“数字比较”部分中,引用了一个示例:
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
上面发生的事情是,我们在bash变量中存储了一串命令,然后在该变量上调用echo。似乎发生的事情是对字符串求值并执行wc命令并将行数返回到控制终端。
好的,所以我在Ubuntu 12.04中启动终端并尝试类似的操作:
$ touch sample.txt && echo "Hello World" > sample.txt
$ cat sample.txt
Hello World
$ num='wc -l sample.txt'
echo $num
wc -l sample.txt
请稍等片刻,这没有评估字符串并返回行数。那只是将字符串回送给终端。为什么我得到不同的结果?
wc -l work.txt
,而不是它的分配数量201