首先,我很抱歉标题可能很糟糕,但我什至不知道该怎么称呼它。
我正在尝试以下方法:
#!/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