在 shell 脚本中使用变量名



首先,我很抱歉标题可能很糟糕,但我什至不知道该怎么称呼它。

我正在尝试以下方法:

#!/bin/sh
VAR1="28-00000202070c"
VAR2="28-0000018776d3"
VAR3="28-0000033a6174"
for sensor in VAR1 VAR2 VAR3
do
 echo "$sensor:  $$sensor"
done

预期输出为:

VAR1: 28-00000202070c

VAR2: 28-0000018776d3

VAR3: 28-0000033a6174

实际输出是:

VAR1: 24038传感器

VAR2: 24038传感器

VAR3: 24038传感器

奇怪的前缀号码还在不断增长...

VAR1: 24039传感器

VAR2: 24039传感器

VAR3: 24039传感器

我想问一下:

1)描述我在这里尝试做的事情的正确术语/关键字是什么

2) 如何达到预期输出

谢谢若昂阿布斯

这是

sh不支持的,而bash支持。

您应该使用的正确语法是:

echo "$sensor ${!sensor}"

测试

$ cat a
#!/bin/bash                 <----- note I changed /bin/sh to /bin/bash
VAR1="28-00000202070c"
VAR2="28-0000018776d3"
VAR3="28-0000033a6174"
for sensor in VAR1 VAR2 VAR3
do
 echo "$sensor ${!sensor}"
done
$ ./a
VAR1 28-00000202070c
VAR2 28-0000018776d3
VAR3 28-0000033a6174

最新更新