Ksh
ksh 腳本中的變數賦值
我正在查看一個 ksh 腳本,我看到一個函式,其中變數的定義如下。誰能解釋一下 ksh 腳本中的變數分配到底意味著什麼?
temprule="\$${APPLC_NM}"
正如@ 所
Julie Pelletier
指出的,這是製作間接變數或nameref 的有趣語法。ksh
然而,有一些專門的語法來完成這項工作。這是 的一個特性ksh
,在其他 shell 中可能不起作用。寫相同內容的更慣用方式
ksh
如下所示:# Set up the nameref: nameref temprule=APPLC_NM # Assign value to AAPLC_NM APPLC_NM=abc # The above two statements may be executed in any order. # Now, temprule will contain the value of APPLC_NM: echo $temprule abc
現在,不需要對 double 進行有趣的轉義,
$
結果可以說更具可讀性。
temprule
將分配 ‘$’ 後跟變數的值APPLC_NM
。所以如果APPLC_NM
設置為“pizza”,temprule
就會變成“$pizza”。請注意,這
temprule="\$$APPLC_NM"
將做完全相同的事情。僅當變數名後跟一個在變數名中有效的字元時才需要括號。