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

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


在哪里:


$patch_set是存储的几个文件名,例如patch.dotpatch2.dotpatch3.dot等。
每个patch*.dot文件中都包含字符串内容
$key不时更改-可以将其更改为201509或某个等效日期。我只是在代码中将其设为静态。
$stringpatch*.dot文件的内容
$autopatch充满这样的路径:


/backend/dot/scipts/shock/201508/SQL/file.sql
/backend/dot/scipts/shock/201509/SQL/file.sql



代码的想法是获取patch*.dot文件中的内容,该内容是文本。有没有一种方法可以将输出存储在某个变量中以进行读取和编辑?

最佳答案

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

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)

关于linux - 保存for循环的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33504647/

10-13 05:08