Shell 命令在 # 中不起作用

0 terminal macos

这是我的 shell 命令:

sudo sh -c "echo "#" > /file"
Run Code Online (Sandbox Code Playgroud)

但这不起作用,但这确实有效:

sudo sh -c "echo "hi" > /file"
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题,因为 # 需要在其中。

Pau*_*l R 5

对棘手的字符使用“硬”引号:

sudo sh -c "echo '#' > /file"
Run Code Online (Sandbox Code Playgroud)

  • 与双引号无关,就像这是关于`$` 字符一样。`sudo sh -c 'echo "#" > /file'` 也可以。只是原始脚本行*在两个级别上使用相同的引号而没有转义*,导致`sudo sh -c "echo "`,其余为注释(可能要归功于`bash` 选项`interactive_comments`) (3认同)