使用bash循环具有多个条件的脚本

使用bash循环具有多个条件的脚本,bash,loops,Bash,Loops,我正在尝试根据我创建的附加列表“list2.txt”添加一个参数,但我不确定如何实现它 我的运行代码 while read i do sed "s/Pie/$i/g" old_script.sh > new_script.$i.sh sbatch new_script.$i.sh done<list.txt sed允许多种方式提供多个命令。您可以使用-e单独提供它们,也可以将它们写入单个脚本字符串 GNUsed允许同一行上的命令用分号分隔,这是您将发现的一般情况,但如果您没有该版本

我正在尝试根据我创建的附加列表“list2.txt”添加一个参数,但我不确定如何实现它

我的运行代码

while read i
do
sed "s/Pie/$i/g" old_script.sh > new_script.$i.sh
sbatch new_script.$i.sh
done<list.txt

sed
允许多种方式提供多个命令。您可以使用
-e
单独提供它们,也可以将它们写入单个脚本字符串

GNU
sed
允许同一行上的命令用分号分隔,这是您将发现的一般情况,但如果您没有该版本,则可以使用嵌入的换行符。只要它被引用,它就可以正常工作

sed "s/Pie/$i/g; s/Apple/__/g;" old_script.sh # GNU specific but common


这两个命令都是有效的。

因此,将我的新sed命令添加到带有临时输出的原始sed命令之前。但是在哪里我会指出list2.txt
sed-e“s/Pie/$i/g”-e“s/Apple/\uu/g”old\u script.sh>new\u script.$i.sh
(注意:每个表达式前面都有
-e
sed "s/Pie/$i/g; s/Apple/__/g;" old_script.sh # GNU specific but common
sed "
  s/Pie/$i/g
  s/Apple/__/g
" old_script.sh # general, should always work.