当在使用数组之前设置变量时,它不起作用。

时间:2016-01-20 15:26:37

标签: unix

我是unix的新手。我试图根据设置的数组转储出一些文件。

例如:

set my_n = Apple
arrayme="fruit name misc"

for x in $arrayme; do
echo "I am $my_n" > $my_n_$x.txt
done

我希望输出文件是:       Apple_fruit.txt,Apple_name.txt,Apple_misc.txt

我想设置这个$ my_n,以便我可以重用其他可以在其上设置的$ my_n变量。但我无法让它工作。需要帮助来掌握上面的语法。 谢谢。

1 个答案:

答案 0 :(得分:1)

在第1行,不需要使用set。不要在变量名称和&之间添加空格。等于,等于&值。

在第5行,您必须将变量 my_n 括在花括号中,以区别于您使用的下划线分隔符。

1    my_n=Apple
2    arrayme="fruit name misc"
3
4    for x in $arrayme; do
5    echo "I am $my_n" > ${my_n}_$x.txt
6    done

此更新的代码应按预期工作。