我有一个字符串:非常复杂的外壳串了很多报价,如何处理逃逸
str='sudo nohup bash -c "kill -9 `ps -ef|grep "udp_receiver"|grep -v "grep"|awk '{print $2}'` > /nohup.out 2>&1 &"'
有很多报价 和上面的变量是不正确的
我试过
str='sudo nohup bash -c "kill -9 `ps -ef|grep \"tcp\"|grep -v \"grep\"|awk \'{print $2}\'` > /nohup.out 2>&1 &"'
仍然不正确 如何修改它使其正确? 感谢
因此,在$()中使用双引号'''在外面有'''时不会引起问题? – misteryes 2013-04-28 21:18:54
确实。这完全取决于扩展的顺序。事实上,如果你愿意,你可以'echo'$(pkill -f“$ 1”)“”。另外请参阅bash builtin'printf'%q'' – sehe 2013-04-28 21:27:43