-2
我想逃避以下脚本通过shell命令行选项(/ bin/sh -c)运行它。如何转义shell脚本以使用command_string选项运行它?
privateIP=$(ifconfig eth0 | grep "inet " | awk \'{print $2}\');
sed -i "s/http:\/\/:/http:\/\/$privateIP:/g" init.conf
请详细说明答案。
我想逃避以下脚本通过shell命令行选项(/ bin/sh -c)运行它。如何转义shell脚本以使用command_string选项运行它?
privateIP=$(ifconfig eth0 | grep "inet " | awk \'{print $2}\');
sed -i "s/http:\/\/:/http:\/\/$privateIP:/g" init.conf
请详细说明答案。
你的问题是不明确的,但也许你正在寻找:
sh -c 'privateIP=$(ifconfig eth0 | awk "/inet/{print \$2}");
sed -i "[email protected]://:@http://$privateIP:@g" init.conf'
感谢您的回复。我试过你的命令,我得到了 - sed:-e表达式#1,字符27:未终止的命令错误。仅供参考我试图运行一个shell脚本.sh文件内嵌/ bin/sh -c选项并坚持转义脚本 – KarthikJ
你需要证明你是如何使用'/ bin/sh的-c'。一旦你分配了它,你打算如何处理'$ privateIP'?您确定所返回的价值是否符合您的需求?而WilliamPursell向你展示了当你在str或替换中有'/'字符时替换的正确语法,即''@ http .... @ ..... @ g''。 。如果你得到一个sed错误,那么你应该显示正在执行的确切命令。祝你好运。 – shellter