我有一个bash变量:agent1.ip与192.168.100.137作为其值.当我参考它时echo:
echo $agent1.ip
Run Code Online (Sandbox Code Playgroud)
结果是:
.ip
Run Code Online (Sandbox Code Playgroud)
如何获取价值?
更新:我的变量是:

Joh*_*nck 13
Bash本身并不了解带有点的变量名,但这并不意味着您不能在您的环境中拥有这样的变量.这是一个如何设置它并将其全部集合在一起的示例:
env 'agent1.ip=192.168.100.137' bash -c 'env | grep ^agent1\\.ip= | cut -d= -f2-'
Run Code Online (Sandbox Code Playgroud)
由于bash.ip不是有效的标识符bash,因此环境字符串bash.ip=192.168.100.37不用于在shell启动时创建shell变量.
我会使用awk标准工具从环境中提取值.
bash_ip=$(awk 'BEGIN {print ENVIRON["bash.ip"]}')
Run Code Online (Sandbox Code Playgroud)
您的代码是否嵌套,并使用使用 ksh 的函数或脚本?
点分变量名是 ksh93 中的一项高级功能。一个简单的案例是
$ a=1
$ a.b=123
$ echo ${a.b}
123
$ echo $a
1
Run Code Online (Sandbox Code Playgroud)
如果您第一次尝试分配给a.b,您将得到
-ksh: a.b=123: no parent
Run Code Online (Sandbox Code Playgroud)
IHTH