我在编写 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 bash脚本错误处理for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33866754/