对于 bash 中的命令替换,我们这样做
hello=$(ls -la)
echo "$hello"
但是当我对以下命令执行相同操作时,它失败了,它说 RANDOM not found
hell=$(RANDOM)
echo "$hell"
我可以通过使用算术展开来克服它..
hell=$((RANDOM))
echo "$hell"
知道为什么下面不起作用...根据我的理解, RANDOM 也是一个命令,我应该得到数字回显
hell=$(RANDOM)
echo "$hell"
RANDOM
不是命令,而是变量。只有一套由外壳设置,还有一点特殊:类似的东西
echo "$RANDOM"
正是您使用任何变量的方式,例如更“正常”的变量HOME
和BASH_VERSION
. 当然${RANDOM}
,使用大括号而不是常规括号也可以。能够在没有 的算术扩展中使用它
$
也是算术上下文的一个特性,并且适用于任何变量:(例如
x=4; echo "$((x*x))"
打印16
)(* 您可以在此处忽略变量与参数的区别。)