用点设置变量选项

用点设置变量选项

我正在尝试与一个不受我管理的系统进行交互,该系统正在执行一些 Unix 命令脚本和命令以轻松执行作业。

有一个变量替换不起作用,我想知道是否可以编写一个命令来避免这种情况。有很多变量需要设置,我希望有机会输入一个空变量。问题在于系统没有传递空变量并且根本没有设置该变量。我明白了

${option.VARIABLE}:错误替换

我尝试设置类似的东西但不起作用。

if [ -z ${option.VARIABLE} ];然后 option.VARIABLE="";菲;

任何想法?

答案1

点不是变量名称中的有效字符。 bash 手册说(这里

姓名

仅由字母、数字和下划线组成且以字母或下划线开头的单词。名称用作 shell 变量和函数名称。也称为标识符。


但是,我的 ksh93 手册页显示:

定义。

[...] 标识符是一个以字母或下划线开头的字母、数字或下划线序列。标识符用作变量名称的组成部分。 vname 是由 . 分隔的一个或多个标识符组成的序列。并可选地在前面加上 .. Vnames 用作函数和变量名称。

这部分似乎与您的问题最相关(强调我的问题):

参数扩展。

[...] 变量由 vname 表示。 创建一个 vname 包含 . 的变量,该变量的 vname 由最后一个 . 之前的所有内容组成。必须已经存在。

此功能仅存在于 ksh93 中,bash 中不存在。如果您的脚本使用它,您需要在 ksh93 下运行它。

答案2

我觉得 ”。”你的变量名会弄乱你的代码。

option.VARIABLE尝试通过将变量从重命名为来删除变量中的点optionVARIABLE

相关内容