我有一个/tmp/testing
要替换的字符串\/tmp\/testing
sed
工作正常如下:
echo testdir=/tmp/testing | sed 's/\//\\\//g'
testdir=\/tmp\/testing
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试将其放入稍后要使用的变量中,则会出现此错误:
myvar=`echo testdir=/tmp/testing | sed 's/\//\\\//g'`
sed: -e expression #1, char 9: unknown option to `s'
Run Code Online (Sandbox Code Playgroud)
请问有什么想法吗?
roa*_*ima 10
反引号`...`
增加了需要另一组\
转义的间接级别。如果您$( ... )
改用它,它会按预期正常工作:
myvar=$(echo testdir=/tmp/testing | sed 's/\//\\\//g')
echo "$myvar"
testdir=\/tmp\/testing
Run Code Online (Sandbox Code Playgroud)
如果您坚持使用反引号,这将起作用:
myvar=`echo testdir=/tmp/testing | sed 's/\//\\\\\//g'`
echo "$myvar"
testdir=\/tmp\/testing
Run Code Online (Sandbox Code Playgroud)
尝试这个
$ echo testdir=/tmp/testing | sed 's/\//\\\//g'
testdir=\/tmp\/testing
Run Code Online (Sandbox Code Playgroud)
在变量中
var=$(echo testdir=/tmp/testing | sed 's/\//\\\//g')
Run Code Online (Sandbox Code Playgroud)