Bash 转义字符

Bash escape character

我有一个 bash 命令的简化示例,我希望在其中转义 $ 符号。 所以命令:

su -m user -c "echo $test"

应该打印出来:

$test

不幸的是,简单的 \$test 不起作用。我尝试了很多其他的东西,但仍然找不到解决方案。有什么建议吗?

用单引号而不是双引号。

su -m user -c 'echo $test='

单引号防止变量被原来的 shell 扩展。然后反斜杠转义 shell 运行 中的美元符号 by su.

Difference between single and double quotes in Bash

在回答评论时,您可以切换到双引号以将单引号放入字符串中。

su -m user -c 'echo $test='"'1'"