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

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

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



蛊毒传说
浏览 1115回答 3
3回答

心有法竹

如果您指的是当您回显某些内容时会发生什么,单引号将直接回显它们之间的内容,而双引号将评估它们之间的变量并输出变量的值。例如,这个#!/bin/shMYVAR=sometext echo "double quotes gives you $MYVAR"echo 'single quotes gives you $MYVAR'会给这个:double quotes gives you sometext single quotes gives you $MYVAR

慕尼黑8549860

该接受的答案是伟大的。我正在制作一个有助于快速理解主题的表格。解释涉及一个简单的变量a以及一个索引数组arr。如果我们设定a=apple      # a simple variablearr=(apple)  # an indexed array with a single element然后echo在第二列中的表达式,我们将得到第三列中显示的结果/行为。第四列解释了这种行为。 # | Expression  | Result      | Comments ---+-------------+-------------+--------------------------------------------------------------------  1 | "$a"        | apple       | variables are expanded inside ""  2 | '$a'        | $a          | variables are not expanded inside ''  3 | "'$a'"      | 'apple'     | '' has no special meaning inside ""  4 | '"$a"'      | "$a"        | "" is treated literally inside ''  5 | '\''        | **invalid** | can not escape a ' within ''; use "'" or $'\'' (ANSI-C quoting)  6 | "red$arocks"| red         | $arocks does not expand $a; use ${a}rocks to preserve $a  7 | "redapple$" | redapple$   | $ followed by no variable name evaluates to $  8 | '\"'        | \"          | \ has no special meaning inside ''  9 | "\'"        | \'          | \' is interpreted inside "" but has no significance for ' 10 | "\""        | "           | \" is interpreted inside "" 11 | "*"         | *           | glob does not work inside "" or '' 12 | "\t\n"      | \t\n        | \t and \n have no special meaning inside "" or ''; use ANSI-C quoting 13 | "`echo hi`" | hi          | `` and $() are evaluated inside "" 14 | '`echo hi`' | `echo hi`   | `` and $() are not evaluated inside '' 15 | '${arr[0]}' | ${arr[0]}   | array access not possible inside '' 16 | "${arr[0]}" | apple       | array access works inside "" 17 | $'$a\''     | $a'         | single quotes can be escaped inside ANSI-C quoting 18 | "$'\t'"     | $'\t'       | ANSI-C quoting is not interpreted inside "" 19 | '!cmd'      | !cmd        | history expansion character '!' is ignored inside '' 20 | "!cmd"      | cmd args    | expands to the most recent command matching "cmd" 21 | $'!cmd'     | !cmd        | history expansion character '!' is ignored inside ANSI-C quotes ---+-------------+-------------+--------------------------------------------------------------------也可以看看:
打开App,查看更多内容
随时随地看视频慕课网APP