如何转义shell脚本以使用命令\字符串选项运行它?

如何转义shell脚本以使用命令\字符串选项运行它?,shell,awk,sed,Shell,Awk,Sed,我试图通过shell命令字符串选项(/bin/sh-c)转义以下脚本以运行它 请详细说明答案。您的问题不清楚,但可能您正在寻找: sh -c 'privateIP=$(ifconfig eth0 | awk "/inet/{print \$2}"); sed -i "s@http://:@http://$privateIP:@g" init.conf' 谢谢你的回复。我尝试了你的命令,我得到-sed:-e表达式#1,字符27:未终止的's'命令错误。仅供参考,我正在尝试运行一个与/bin

我试图通过shell命令字符串选项(/bin/sh-c)转义以下脚本以运行它


请详细说明答案。

您的问题不清楚,但可能您正在寻找:

sh -c 'privateIP=$(ifconfig eth0 | awk "/inet/{print \$2}"); 
  sed -i "s@http://:@http://$privateIP:@g" init.conf'

谢谢你的回复。我尝试了你的命令,我得到-sed:-e表达式#1,字符27:未终止的's'命令错误。仅供参考,我正在尝试运行一个与/bin/sh-c选项内联的shell script.sh文件,并坚持转义脚本。您需要展示如何使用
/bin/sh-c
。一旦分配了
$privateIP
,您打算如何处理它?您确定返回的值符合您的需要/预期吗?williampersell向您展示了在str或replacment中有
/
字符时进行替换的正确语法,即
's@http....@..…@g'
。如果出现sed错误,那么应该显示正在执行的确切命令。祝你好运
sh -c 'privateIP=$(ifconfig eth0 | awk "/inet/{print \$2}"); 
  sed -i "s@http://:@http://$privateIP:@g" init.conf'