Bash 替换为sed似乎不起任何作用
我的脚本中包含以下代码:Bash 替换为sed似乎不起任何作用,bash,file,var,sed,Bash,File,Var,Sed,我的脚本中包含以下代码: no_forward="#net.ipv4.ip_forward=1" forward="net.ipv4.ip_forward=1" sed -i 's/$no_forward/$forward/' /etc/sysctl.conf 根据手册页,-i后缀是不必要的,但这次使用我将只使用修改过的文件,而不是两者(修改过的文件和“备份”,前一个) 我需要使用那个变量,因为我需要在那个命令之后使用它们,所以这样做很有用。我想我应该是错的模式字符串,但现在我不知道为什么。或
no_forward="#net.ipv4.ip_forward=1"
forward="net.ipv4.ip_forward=1"
sed -i 's/$no_forward/$forward/' /etc/sysctl.conf
根据手册页,-i
后缀是不必要的,但这次使用我将只使用修改过的文件,而不是两者(修改过的文件和“备份”,前一个)
我需要使用那个变量,因为我需要在那个命令之后使用它们,所以这样做很有用。我想我应该是错的模式字符串,但现在我不知道为什么。或者问题是var的字符串或它们的符号
你能帮我吗?如果其他解决方案使用bash并且不需要特殊命令,我会接受非sed的解决方案,因为我需要在另一台计算机中使用脚本,而无需再安装
感谢阅读如果您想在中使用变量,请使用双引号,因此:
sed -i "s/$no_forward/$forward/" /etc/sysctl.conf
你是对的,但是因为我在考虑Sed命令及其模式,像我这样的人可能会出错,并且不认为问题不是Sed而是字符串使用的语法,所以很难找到关于引号查找Sed的问题的解决方案,你认为呢?谢谢,谢谢!正在查看Sed命令,而不是查看完整的语法=)