$ VARIABLE和$ {VARIABLE}之间有什么区别

任何人都可以请给我一个解释,为什么一些Linux专家build议我们在Bash脚本中使用$ {VARIABLE}? 似乎没有任何区别。

假设你想打印$VARIABLE ,紧接着是"string"

 echo "$VARIABLEstring" # tries to print the variable called VARIABLEstring echo "${VARIABLE}string" # prints $VARIABLE and then "string" 

Bash还支持使用此语法的字符串操作 。

你可能想要这样做的一个原因是作为分隔符:

 a=42 echo "${a}sdf" # 42sdf echo "$asdf" # prints nothing because there's no variable $asdf 

这个功能通常用来保护周围字符的变量名。

 $ var=foo 

如果我们希望在$var的末尾连接一个字符串我们不能这样做:

 $ echo $varbar $ 

因为这是试图使用一个新的变量$varbar
相反,我们需要将{} var {}括在{}中:

 $ echo ${var}bar foobar