Bash
為什麼(RAN多米_)workd我_Ferently_From(R一個ñD○米)在○rķd一世FF和r和n噸l是Fr○米(RANDOM) work differently from(ls -la)?
對於 bash 中的命令替換,我們這樣做
hello=$(ls -la) echo "$hello"
但是當我對以下命令執行相同操作時,它失敗了,它說 RANDOM not found
hell=$(RANDOM) echo "$hell"
我可以通過使用算術展開來克服它..
hell=$((RANDOM)) echo "$hell"
知道為什麼下面不起作用…根據我的理解, RANDOM 也是一個命令,我應該得到數字回顯
hell=$(RANDOM) echo "$hell"
RANDOM
不是命令,而是變數。只有一套由外殼設置,還有一點特殊:RANDOM 每次引用此參數(*)時,它都會擴展為 0 到 32767 之間的隨機整數。為此變數分配一個值會為隨機數生成器提供種子。如果 RANDOM 未設置,它將失去其特殊屬性,即使它隨後被重置。
類似的東西
echo "$RANDOM"
正是您使用任何變數的方式,例如更“正常”的變數HOME
和BASH_VERSION
. 當然${RANDOM}
,使用大括號而不是正常括號也可以。能夠在沒有 的算術擴展中使用它
$
也是算術上下文的一個特性,並且適用於任何變數:在表達式中,shell 變數也可以通過名稱來引用,而無需使用參數擴展語法。
(例如
x=4; echo "$((x*x))"
列印16
)(* 您可以在此處忽略變數與參數的區別。)