我不是 shell 的新手,但仍然对一些不太复杂的引用问题感到困惑。我想一定是有什么误解。
a: echo 'Don\'t quote me // Don quote me
b: echo Don'\t' quote me // Don quote me
c: echo Don\t quote me // Dont quote me
d: echo Don"\t" qoute me // Don quote me
以上三个引文完全违背我的直觉。单引号
'...'
不是从字面上返回引用的内容吗?我以为是..对于 a: 在单引号
'Don\'
中, \
只不过是一个普通字符。所以 a) 应该是 Don\t quote me
。对于 b: 就像 a),
'\t'
抑制了 \t
的特殊含义,所以我认为 b) 也应该是 Don\t quote me
。对于 c:我明白为什么 c 有效,但不明白 a&b 和 c 之间的区别。
对于 d:
'
和 "
之间没有区别?可能我误解了
shell
如何解析和执行命令行..在 Mac 上通过使用
/bin/echo
而不是 (built-in)echo
解决了问题。后一个将解释反斜杠。 最佳答案
根据 bash
为什么:
关于bash - 令人困惑的 shell 牌报价,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21703797/