ksh 脚本中的变量分配

ksh 脚本中的变量分配

我正在查看 ksh 脚本,并且看到一个函数,其中变量定义如下。谁能解释一下 ksh 脚本中下面的变量分配到底意味着什么?

temprule="\$${APPLC_NM}"

答案1

temprule将被分配“$”,后跟变量的值APPLC_NM。所以如果APPLC_NM设置为“pizza”,temprule就会变成“$pizza”。

请注意,这temprule="\$$APPLC_NM"会做完全相同的事情。仅当变量名称后跟在变量名称中有效的字符时才需要括号。

答案2

正如 @ 所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 进行有趣的转义,并且结果可以说更具可读性。

相关内容