保存for循环的输出

时间:2015-11-03 16:46:29

标签: linux bash shell unix

我想操纵以下“for loop”的输出:

for i in $patch_set;do
     key= 201508 #see the comments after the code
     csvArr[$key]=$strings
done
for roF in $(echo -e $autopatch)
do
filename=`basename $roF`
    key=201508 #see the comments after the code
    echo -e "$key ${csvArr[$key]}"
done

其中:

  1. $patch_set存储了几个文件名,例如patch.dotpatch2.dotpatch3.dot等等。
  2. 每个patch*.dot文件都包含字符串内容
  3. $key不时更改 - 可以更改为201509或某个等效日期。我刚刚在代码中使它成为静态的。
  4. $stringpatch*.dot个文件
  5. 的内容
  6. $autopatch充满了这样的路径:
    • /backend/dot/scipts/shock/201508/SQL/file.sql
    • /backend/dot/scipts/shock/201509/SQL/file.sql
  7. 代码的想法是获取patch*.dot个文件中的内容,其内容是文本。有没有办法将输出存储在某个变量中以便读取和编辑它?

1 个答案:

答案 0 :(得分:2)

您可以将整个脚本放在$(...)中以将其输出捕获到变量中。

var=$(
    for i in $patch_set;do
         key=201508
         csvArr[$key]=$strings
    done
    for roF in $(echo -e $autopatch)
    do
    filename=`basename $roF`
        key=201508
        echo -e "$key ${csvArr[$key]}"
    done)