关于使用 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/