首先,我很遗憾可能会出现不好的头衔,但我甚至不知道该怎么称呼它。
我正在尝试以下方法:
#!/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:24038sensor
并且奇怪的前缀号码不断增长...
VAR1:24039传感器
VAR2:24039传感器
VAR3:24039传感器
...
我想问:
1)描述我在这里尝试做什么的正确术语/关键词是什么
2)如何达到预期的输出
谢谢, Joaoabs
答案 0 :(得分:3)
这是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