0

最近,我对以下情况感到困惑。if两种用法有什么区别:

情况1

amount=10  
if [[ $amount -eq 10 ]]   
then  
    echo "something"  
fi  

脚本输出:

$ ./1.sh  
something  

案例2

if [[ amount -eq 10 ]]   

这也像这样工作(注意变量名不包含$)。

所以问题是即使变量名中没有美元符号,它是如何工作的。

PS 我在 HP-UX 上使用 POSIX shell。

4

1 回答 1

1

man bash

算术评估 ... Shell 变量可以作为操作数;在计算表达式之前执行参数扩展。在表达式中,shell 变量也可以通过名称来引用,而无需使用参数扩展语法。

在这种情况下,shell 除了数字之外什么都不期待,因此它将字符串扩展为变量。这对我来说很有意义。

于 2013-07-11T07:45:26.657 回答