我想弄清楚“”和''之间的区别是什么。
当我将它们与它们一起使用时,echo
它们都会给出相同的结果,
sps@sps-Inspiron-N5110:~$ echo Hello world
Hello world
sps@sps-Inspiron-N5110:~$ echo "Hello world"
Hello world
sps@sps-Inspiron-N5110:~$ echo 'Hello world'
Hello world
sps@sps-Inspiron-N5110:~$
有没有我们需要使用其中一个的特定情况?
谢谢。
在bash(Ubuntu 的默认交互式shell)中,左单引号 (
'
)之后的所有内容都按字面意思引用,直到下一个'
被视为结束引号。相反,几种 shell 扩展是在双引号("
) 内执行的。参数扩展(使用
$...
或${...}
):"
这是shell 脚本中引用的常见用例。特别是,您可能已经看到遍历文件名的循环,在双引号内扩展变量,因此它确实得到扩展但没有将其值拆分为单独的单词。例如,这样的命令可能会帮助我在准备大量媒体文件进行移动时跟踪事物:命令替换(使用
$(...)
或`...`
)和算术扩展(使用$((...))
):支持使用转义单个字符,
\
并且在引号中很方便"
,但在更简单的引号中不受支持(通常毫无意义)'
:历史扩展(
!
如果启用,通常在您交互式使用 shell 时):此外,使用双引号的最常见原因之一是轻松直观地引用包含单引号的文本(因为 a
'
根本没有特殊含义,在"
引号内):最后,虽然您无法转义
'
内部'
引用的文本,但您可以通过以 结束引用'
、使用转义'
(\'
) 并使用 恢复引用来实现相同的结果'
:bodhi.zazen 上面发布的 stackoverflow 链接回答了这个问题。
下面是一种情况,它会有所作为。
发布这个答案,只是为了让其他人知道我已经得到了答案。(我已经发布了这个问题。)
谢谢。