Bash 变量格式

扫码查看

以下变量在使用 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/

10-11 23:12
查看更多