8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Bash 中单引号和双引号的区别

Shaul Behr 2月前

151 0

在 Bash 中,单引号 ('') 和双引号 (\'\') 有什么区别?

) 和双引号 ( '' ) "" 有什么区别

帖子版权声明 1、本帖标题:Bash 中单引号和双引号的区别
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Shaul Behr在本站《linux》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 接受的答案 很棒 。我正在制作一个表格,帮助快速理解主题。解释涉及一个简单的变量 a 以及一个索引数组 arr .

    如果我们设定

    a=apple      # a simple variable
    arr=(apple)  # an indexed array with a single element
    

    然后 echo 第二列中的表达式,我们将得到第三列中显示的结果/行为。第四列解释了该行为。

    # 表达 结果 评论
    1 "$a" apple 变量在内部扩展 ""
    2 '$a' $a 变量不在内部扩展 ''
    3 "'$a'" 'apple' '' 里面没有特殊含义 ""
    4 '"$a"' "$a" "" 在内部按字面意思处理 ''
    5 '\'' p7 无法逃脱 ' '' 使用 "'" $'\'' (ANSI-C 引用)
    6 "red$arocks" red $arocks 不扩大 $a ;用于 ${a}rocks 保存 $a
    7 "redapple$" redapple$ $ 后面没有变量名,计算结果为 $
    8 '\"' \" \ 里面没有特殊含义 ''
    9 "\'" \' \' 在内部解释 "" ,但对 '
    10 "\"" " \" 在内部解释 ""
    11 "*" * glob 在内部不起作用 "" ''
    12 "\t\n" \t\n \t 并且 \n "" 内部没有特殊含义 '' ;使用 ANSI-C 引用
    十三 "`echo hi`" hi `` $() 在内部进行评估 "" (反引号保留在实际输出中)
    14 '`echo hi`' `echo hi` `` 并且 $() 不在内部进行评估 '' (反引号保留在实际输出中)
    15 '${arr[0]}' ${arr[0]} 无法在内部进行数组访问 ''
    16 "${arr[0]}" apple 数组访问在内部工作 ""
    17 $'$a\'' $a' 单引号可以在 ANSI-C 引用中转义
    18 "$'\t'" $'\t' ANSI-C 引用不被解释 ""
    19 '!cmd' !cmd 历史扩展字符 '!' 被忽略 ''
    20 "!cmd" cmd args 扩展到最近匹配的命令 "cmd"
    21 $'!cmd' !cmd 历史扩展字符 '!' 被忽略

    参见:

    • ANSI-C 使用 $'' 引用 - GNU Bash 手册
    • 使用 $\'\' 进行区域设置翻译 - GNU Bash 手册
    • 报价的三点公式
返回
作者最近主题: