在终端中,如果我定义一些变量 char 如下:
export char=\'\\\"\?\!
Run Code Online (Sandbox Code Playgroud)
实际上,char 是字符串
'\"?!
Run Code Online (Sandbox Code Playgroud)
然后我使用tr
命令替换'\"?!
为数字01234
tr "\'\\\"\?\!" "01234"
Run Code Online (Sandbox Code Playgroud)
我以为我会得到
01234
Run Code Online (Sandbox Code Playgroud)
相反,我得到了
0\123
Run Code Online (Sandbox Code Playgroud)
如果有人能向我解释发生了什么,我将不胜感激。
似乎用sed
命令单独替换每个字符可以避免这个问题,但为什么呢?