我在制定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/