【发布时间】:2014-10-09 04:16:11
【问题描述】:
我正在使用 bourne shell 并希望执行以下操作:
COUNTER=0
CIRCLEPART1="|"
CIRCLEPART2="/"
CIRCLEPART3="--"
CIRCLEPART4='\'
while [ $COUNTER -lt 3 ]; do
ACT_CIRCLEPART=CIRCLEPART$COUNTER
echo "Hello `eval \${ACT_CIRCLEPART}`"
COUNTER=`expr $COUNTER + 1`
done
我想在每个循环中处理一个 CIRCLE 名称。我在 stackoverflow 上找到了一个代码 sn-p,但它也不起作用,因为我的输出是“Hello, 8537{myConstructedVar}。”:
FOOCOUNT=4
FOO_0=John
FOO_1=Barry
FOO_2=Lenny
FOO_3=Samuel
count=$FOOCOUNT
counter=0
while [ $counter -lt $count ]
do
myConstructedVar=FOO_$counter
counter=`expr $counter + 1`
echo "Greeting #$counter: Hello, `eval echo \$${myConstructedVar}`."
done
感谢您的帮助。问候。
【问题讨论】:
-
您实际上是在使用 Bourne shell,还是只是在您的机器上使用
/bin/sh(这实际上可能是到另一个 shell 的链接,例如在 POSIX 兼容模式下运行的dash或bash)?