Shell批处理脚本for循环访问不同的变量列表

时间:2014-05-23 11:44:55

标签: shell sed

我正在尝试在批处理脚本中使用for循环来更改文件中的某些变量。

我可以使用一个变量成功完成,因为for循环遍历与该变量关联的列表。现在我需要第二个变量同时运行并替换文件中的值。这是我正在使用的代码:

#!bin/bash

declare -a subjectID=(AA BB CC)

for subject in ${subjectID[@]}
do

sed -i 's/XX/'$subject'/g' design.txt

done

现在我想要一个带有不同值列表的第二个变量(比如名为volume),但仍然使用sed替换txt文件中的某些字符的过程相同。

任何帮助?

1 个答案:

答案 0 :(得分:1)

我相信这应该符合您的需求:

#!bin/bash

declare -a subjectID=(AA BB CC);
declare -a volume=(xx yy zz);

i=0;

while [ $i -lt ${#subjectID[@]} ] #assumes you can guarantee the array lengths are the same
do

    sed -i '' 's/XX/'${subjectID[$i]}'/g' design.txt;
    sed -i '' 's/YY/'${volume[$i]}'/g' design.txt;

    #call your other thing here
    let i=$i+1;
done