bash中的三重单引号是什么意思?

时间:2019-05-04 02:13:16

标签: bash shell

我见过bash中很多使用单引号和双引号以及反引号的用法,但从未见过。以下记录的含义是什么,它似乎表明bash认为三重单引号是有意义的,并且进一步表明该内容中的单引号也具有特殊含义,可以进行插值?我没有找到任何文档。

$ Q=test
$ echo '$Q'                      # <== I know, this doesn't work...
$Q                               # <== ...and so it doesn't. 
$ echo '''$Q'''                  # <== Don't know what this could mean.
$Q                               # <== OK, nothing special?
$ echo ''' "$Q" '''              # <== Try a double-quote??
 "$Q"                            # <== Hmm... OK, nothing.
$ echo ''' '$Q' '''              # <== Try a single-quote?
 test                            # <== Wow, it did interpolate!?
$ echo '''                         
> '''                            # <== Continuation! Proving bash  
                                 #     thinks this is an opening 
                                 #     quote of some kind.
$ bash --version                 # <== FYI,  version info
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
Copyright (C) 2007 Free Software Foundation, Inc.

1 个答案:

答案 0 :(得分:7)

没有“三引号” ...例如''' '$Q' '''是几个字符串的串联... ''' '$Q,{{1 }}和' '。以相同的方式考虑其他每个人。