1

我无法找到一种将多个变量正确连接在一起的方法。这个想法是随着时间的推移收集多个项目(在本例中为“foo”、“bar”和“baz”),然后将它们连接在一起形成一个字符串(例如:X =“foo bar baz”)。

以下是我到目前为止整理的代码:

#!/bin/sh
N=0
# assign foo
eval "DATA${N}='foo'"
eval "echo First value is: \$DATA$N"   # First value is: foo
N=`expr $N + 1`

# assign bar
eval "DATA${N}='bar'"
eval "echo Next value is: \$DATA$N"    # Next value is: bar
N=`expr $N + 1`

# assign baz
eval "DATA${N}='baz'"
eval "echo Last value is: \$DATA$N"    # Last value is: baz

for i in 0 1 2
do
        # concatenate foo bar and baz into one variable
done

for 循环中的注释是我现在遇到问题的区域。任何帮助将非常感激。谢谢!

4

1 回答 1

2

您只需要为第一个 eval pass 转义 $ 运算符:

blob=
for i in 0 1 2
do
    eval blob="\$blob\$DATA${i}"
done
于 2010-07-20T22:34:11.387 回答