执行以下脚本:
#!/bin/sh
sed 's/(127\.0\.1\.1)\s/\1/' [some file]
Run Code Online (Sandbox Code Playgroud)
如果我尝试在sh( dashhere) 中运行它,它会因为需要转义的括号而失败。但是,我并不需要转义反斜线本身(八位位组之间,或\s或\1)。这里的规则是什么?当我需要使用{...}或 时[...]呢?有没有我做什么和不需要逃避的清单?
我在 bash 中转义字符时遇到问题。我想在不同用户下运行命令时转义单引号和双引号。出于这个问题的目的,假设我想在屏幕上回显以下内容:
'single quote phrase' "double quote phrase"
Run Code Online (Sandbox Code Playgroud)
如果我还需要切换到其他用户,我该如何转义所有特殊字符:
sudo su USER -c "echo \"'single quote phrase' \"double quote phrase\"\""
Run Code Online (Sandbox Code Playgroud)
当然,这不会产生正确的结果。