以下变量在使用 BASH 编写脚本方面有什么区别:
$var
"$var"
${var}
"${var}"
最佳答案
$var
和 ${var}
之间没有区别,"$var"
和 "${var}"
之间也没有区别,除了在某些情况下,解析器在您使用以前的版本时可能无法识别您的意图。考虑:
foo=hello
echo "$fooworld"
echo "${foo}world"
第一个
echo
什么也不打印,因为变量 fooworld
没有定义。第二个打印 helloworld
因为 shell 能够确定您正在引用 foo
变量。$var
和 "$var"
之间的区别在于,不带引号的变量扩展在扩展后由 shell 评估。因此:var='ls /'
$var
列出
/
,因为在扩展之后,shell 将空格评估为标记分隔符,而var='ls /'
"$var"
结果是
ls /: No such file or directory
,因为在用户环境中没有名为 ls /
的命令可用。关于Bash 变量格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10388599/