Bash

為什麼(RAN多米_)workd我_Ferently_From(R一個ñD○米)在○rķd一世FF和r和n噸l是Fr○米(RANDOM) work differently from(ls -la)?

  • April 17, 2022

對於 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"正是您使用任何變數的方式,例如更“正常”的變數HOMEBASH_VERSION. 當然${RANDOM},使用大括號而不是正常括號也可以。

能夠在沒有 的算術擴展中使用它$也是算術上下文的一個特性,並且適用於任何變數:

在表達式中,shell 變數也可以通過名稱來引用,而無需使用參數擴展語法。

(例如x=4; echo "$((x*x))"列印16

(* 您可以在此處忽略變數與參數的區別。)

引用自:https://unix.stackexchange.com/questions/699379