我有一个非常简化的 bash 命令示例,我希望在其中转义 $ 符号。 所以命令:
su -m user -c "echo $test"
应该打印出:
$test
不幸的是,简单的\$test 不起作用。我尝试了很多其他的东西,但仍然找不到解决方案。有什么建议吗?
最佳答案
将其放在单引号中而不是双引号中。
su -m user -c 'echo \$test='
单引号可以防止变量被原始 shell 扩展。然后,反斜杠在 su
运行的 shell 中转义美元符号。
参见Difference between single and double quotes in Bash
在回答评论时,您可以切换到双引号以将单引号放入字符串中。
su -m user -c 'echo \$test='"'1'"
关于linux - Bash 转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64907722/