我想在所有文件夹中递归替换所有html文件中的图像路径。
#!/bin/bash
for image in images/*.png
do
echo "sed -i .bak -e 's|$image|image2/$image|g' app/www/*.html"
sed -i .bak -e 's|$image|image2/$image|g' app/www/*.html
done
奇怪的是,当我手动执行命令时:
sed -i .bak -e 's|images/add.png|image2/add.png|g' app/www/*.html
一切正常,路径被替换。但是在for循环中,当回声部分回响上面提到的相同行时,这不起作用。
答案 0 :(得分:2)
你需要使用“而不是” 否则,不评估$ image
编辑:它在回声中起作用,因为'包围的字符串被“;”
包围