Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 替换为sed似乎不起任何作用_Bash_File_Var_Sed - Fatal编程技术网

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命令,而不是查看完整的语法=)