我在制定bash脚本时遇到了麻烦。我正在编写一个脚本来复制多个文件,然后使用sed命令更改内部单词(例如= a/x),但是它不起作用。

#!/bin/bash
for (( i = 20151122; i <=20151131; i++))
do
  for (( j = 20151122; j <=20151131; j++))
  do
    cp ~/lecture_2015_11_21.stream.smil "lecture_$i.stream.smil";
    cd ~/
    sed -i 's/$i/$j/g' lecture$j.stream.smil
  done
done

最佳答案

对于sed,要从bash获取值,必须使用双引号而不是单引号(主要是bash引用问题):

错误:

sed -i 's/$i/$j/g' lecture$j.stream.smil


对:

sed -i "s/$i/$j/g" lecture$j.stream.smil


在这种情况下,您可以将它们全部省略:

 sed -i s/$i/$j/g lecture$j.stream.smil

关于linux - linux bash脚本错误处理循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33866754/

10-12 00:03
查看更多