对于 bash 中的命令替换,我们这样做
hello=$(ls -la)
echo "$hello"
但是当我对下面的命令执行相同操作时,它失败了,它说找不到随机数
hell=$(RANDOM)
echo "$hell"
我可以通过使用算术扩展来克服它。
hell=$((RANDOM))
echo "$hell"
知道为什么下面不起作用...根据我的理解,随机也是一个命令,我应该得到数字回显
hell=$(RANDOM)
echo "$hell"
答案1
RANDOM
不是命令,而是变量。只是一套是由外壳组成的,还有一点特别:
RANDOM 每次引用此参数(*)时,它都会扩展为 0 到 32767 之间的随机整数。为此变量分配一个值会为随机数生成器提供种子。如果未设置 RANDOM,它将失去其特殊属性,即使随后重置它也是如此。
就像echo "$RANDOM"
你如何使用任何变量一样,比如更“正常”的,HOME
和BASH_VERSION
。当然${RANDOM}
,使用大括号而不是常规括号也可以。
能够在没有 的情况下在算术展开中使用它$
也是算术语境,并且适用于任何变量:
在表达式中,shell 变量也可以通过名称引用,而不使用参数扩展语法。
(例如x=4; echo "$((x*x))"
印刷品16
)
(* 此处您可以忽略变量与参数的区别。)