我试图在变量中保持sed替换的返回:
D=domain.com
echo $D | sed 's/\./\\./g'
Run Code Online (Sandbox Code Playgroud)
正确返回:domain\.com
D1=`echo $D | sed 's/\./\\./g'`
echo $D1
Run Code Online (Sandbox Code Playgroud)
返回:domain.com
我究竟做错了什么?
D2=`echo $D | sed 's/\./\\\\./g'` echo $D2
想想每次执行时重新扫描行的shell.因此echo $ D1具有其中的转义,在回显它之前,在解析行时将转义应用于该值.解决方案是更多的逃脱.
在嵌套的shell语句中获取正确的转义可以让你生活在有趣的时代.