【发布时间】:2020-11-19 08:13:19
【问题描述】:
我有一个非常简化的 bash 命令示例,我希望 $ 符号在其中转义。 所以命令:
su -m user -c "echo $test"
应该打印出来:
$test
不幸的是,一个简单的 \$test 不起作用。我尝试了很多其他的东西,但仍然找不到解决方案。有什么建议吗?
【问题讨论】:
标签: linux bash shell escaping character
我有一个非常简化的 bash 命令示例,我希望 $ 符号在其中转义。 所以命令:
su -m user -c "echo $test"
应该打印出来:
$test
不幸的是,一个简单的 \$test 不起作用。我尝试了很多其他的东西,但仍然找不到解决方案。有什么建议吗?
【问题讨论】:
标签: linux bash shell escaping character
用单引号代替双引号。
su -m user -c 'echo \$test='
单引号防止变量被原始外壳扩展。然后反斜杠转义 su 运行的 shell 中的美元符号。
见Difference between single and double quotes in Bash
在回复评论时,您可以切换到双引号以将单引号放入字符串中。
su -m user -c 'echo \$test='"'1'"
【讨论】: