gpt4 book ai didi

shell - $var 和 ${var} 之间的区别是什么

转载 作者:行者123 更新时间:2023-12-04 18:14:51 24 4
gpt4 key购买 nike

我看到一些这样的代码

  SERIAL_NO="121"
if [ -z "${SERIAL_NO}" ]; then
echo -e "ERROR: serial number of the device is not provided!"
exit 1
else

这里它使用 ${SERIAL_NO} 来获取 SERIAL_NO 变量。
我想知道 $var 和 ${var} 之间的区别以及为什么在这里使用 ${var} 。

谢谢

最佳答案

实际上在性能方面存在细微差别。存在性能差异的原因是大括号启用了 Parameter Expansion (PE)解析器。没有大括号,shell 知道不会执行任何参数扩展(因为大括号对于 PE 是强制性的)。当您不想执行 PE 时,在变量名周围使用大括号的唯一原因是消除变量名与其他文本(例如 var="foo"; echo ${var}name)的歧义。将输出 fooname .如果没有大括号,shell 将尝试扩展名为 $varname 的变量。这是不存在的。

关于shell - $var 和 ${var} 之间的区别是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5712183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com