命令在bash中转义string
我需要一个bash命令,将string转换成一些被转义的东西。 这是一个例子:
echo“hello \ world”| escape | someprog
其中escape命令将“hello \ world”设置为“hello \\ world”。 然后,someprog可以像预期的那样使用“hello \ world”。 当然,这是我真正要做的一个简单的例子。
在Bash:
printf "%q" "hello\world" | someprog
例如:
printf "%q" "hello\world" hello\\world
这也可以通过variables来使用:
printf -v var "%q\n" "hello\world" echo "$var" hello\\world
纯Bash,使用参数replace:
string="Hello\ world" echo ${string//\\/\\\\} | someprog
您可以使用perl来replace各种字符,例如:
$ echo "Hello\ world" | perl -pe 's/\\/\\\\/g' Hello\\ world
根据您逃生的性质,您可以链接多个呼叫以逃避正确的字符。