Ksh

ksh 腳本中的變數賦值

  • May 6, 2016

我正在查看一個 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"將做完全相同的事情。僅當變數名後跟一個在變數名中有效的字元時才需要括號。

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