我正在尝试使用 sed 修改脚本中的变量。 对我想要修改的路径的变量引用。
问题:是否可以在文件中使用 sed 来修改此脚本以供下一次启动?
我试过了:
#!/bin/bash
main () {
newdir="/okl/dfsdf/dfsf/"
sed -i "s|mnt="/*/"|mnt="\$newdir"|g" file
}
main
我预计 mnt 变量会改变,但只有第一次在代码中定义它时,这就是为什么我需要双引号 mnt="/*/"。 预先感谢
sed
逐行运行,不会跨多行跟踪变量定义。一种方法是使用循环来实现您的目的:
#!/bin/bash
main () {
newdir="/okl/dfsdf/dfsf/"
while IFS= read -r line
do
echo "$line" | sed "s|mnt=\"/*/\"|mnt=\"$newdir\"|g"
done < file
}
main