加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 21:50:48 所属栏目:安全 来源:网络整理
导读:我看到一些像这样的代码 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}之间的区别,以及为什么在这里使用$
我看到一些像这样的代码

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的变量,该变量不存在.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读