Linux 保存for循环的输出

Linux 保存for循环的输出,linux,bash,shell,unix,Linux,Bash,Shell,Unix,我想操纵以下“for循环”的输出: 其中: $patch\u set存储了一对文件名,如patch.dot、patch2.dot、patch3.dot等 每个patch*.dot文件中都有字符串内容 $key不断变化-可以将其更改为201509或某个等效日期。我只是在代码中使它保持静态 $string是补丁*.dot文件的内容 $autopatch充满了如下路径: /backend/dot/scipts/shock/201508/SQL/file.SQL /backend/dot/scipts

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

其中:

  • $patch\u set
    存储了一对文件名,如
    patch.dot
    patch2.dot
    patch3.dot
  • 每个
    patch*.dot
    文件中都有字符串内容
  • $key
    不断变化-可以将其更改为
    201509
    或某个等效日期。我只是在代码中使它保持静态
  • $string
    补丁*.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)
    

    要将命令的输出存储在变量中,请执行
    var=$(command)
    。这就是你要问的吗?这不是基本的shell脚本知识吗?或者您可以使用反勾号,就像您在分配
    文件名的行中所做的那样。
    
    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)