Hp-Ux.Shell.在"if"中使用变量



最近我被以下情况弄糊涂了。两种if用法之间的区别是什么:

案例1

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

脚本输出:

$ ./1.sh  
something  

案例2

if [[ amount -eq 10 ]]   

这也与此类似(请注意,变量名不包含$)。

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

附言:我在HP-UX上使用POSIX shell。

man bash

算术评估。。。允许将外壳变量作为操作数;参数扩展是根据在表达式求值之前形成。在表达式中,shell变量也可以按名称引用,而不使用参数扩展语法。

在这个上下文中,shell除了数字之外什么都不期望,所以它将字符串扩展为变量。这对我来说很有意义。

最新更新