linux - Bash 转义字符

标签 linux bash shell escaping character

我有一个非常简化的 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/

相关文章:

linux - 无法在 Linux fedora 中运行 javafx mediaplayer

linux - 我正在尝试编写一个 bash 脚本,但没有在终端中显示结果

shell - 需要一个 shell 脚本将逗号分隔符更改为管道分隔符

shell - 使用shell脚本递归复制目录

c - 通过eventfd在线程间传递数据

linux - 如何链接到旧版本的数学库?

linux - 有没有办法让 guest 内核直接访问 mmc Controller ?

mysql - 在远程磁盘上创建脚本轮换备份

regex - 如何获取使用 bash 构建正则表达式的 TLD 列表?

bash - 复制多个文件并给出前缀并保留原件