【发布时间】:2020-11-12 13:01:24
【问题描述】:
有没有可能做这样的事情
#!/bin/bash
noOfParameters=2
paramname1="test1"
paramname2="test2"
i=0
while [ $i -ne ${noOfParameters} ]
do
i=`expr $i + 1`
echo ${paramname$i}
done
我正在尝试实现输出为
test1
test2
我收到"main.sh: line 10: ${paramname$i}: bad substitution" 错误
【问题讨论】:
-
最好使用数组
-
这看起来像 "Assigning dynamic bash variable names using a for loop seq" 的副本(解决方案:使用数组)。此外,请使用 bash 的内置数学运算,例如
i=$((i + 1))或只是((i++)),而不是expr。
标签: string bash variables unix