将结果存储在sh中的shell变量中

时间:2015-09-12 12:06:55

标签: shell sh

我有几个嵌套循环,可以在多次迭代中生成相同的数据。

我想从shell变量中的一个内部循环中保存这些数据。

是否有一种简单的方法可以将输出从循环重定向到变量,而无需修改循环本身?

1 个答案:

答案 0 :(得分:1)

循环(forwhileuntil)就像其他任何命令一样。您可以使用命令替换来捕获其输出。

$ foo=$(for x in 1 2 3; do echo "Number $x"; done)
$ echo "$foo"
Number 1
Number 2
Number 3

但是,如果您的意思是重定向,就像您将重定向到文件一样:

for x in 1 2 3; do
    echo "Number $x"
done > somefile.txt
foo=$(cat somefile.txt)
然后事情变得有点棘手。您不能直接写入变量,但可以说最简单的解决方法是上面的,它首先将输出写入文件,然后将文件读回变量。