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

哪种形式更适合在Bash中使用?

发布时间:2020-12-16 01:51:28 所属栏目:安全 来源:网络整理
导读:我正在学习 Bash,我看到了这个形式 C=example echo “$C” 给出相同的表格结果 C=”example” echo $C 我想知道是否更好地将“”放在变量的赋值中或者在$之后.或者如果它无动于衷.或者如果一个人认为比另一个人“更美丽”. 解决方法 如果您确定变量的值是单
我正在学习 Bash,我看到了这个形式

C=example

echo “$C”

给出相同的表格结果

C=”example”

echo $C

我想知道是否更好地将“”放在变量的赋值中或者在$之后.或者如果它无动于衷.或者如果一个人认为比另一个人“更美丽”.

解决方法

如果您确定变量的值是单个单词(没有空格),则可以使用$varname或${varname}.如果你不能保证这一点,那么你应该使用“$varname”或“${varname}”.请注意,bash在解释命令之前会进行分词,因此如果不引用表达式,实际上可能会出现语法错误,例如

C="white space"
if [ -z $C ]
then
  ...
fi

将导致语法错误:

-bash: [: white: binary operator expected

虽然这很好:

C="white space"
if [ -z "$C" ]
then
  ...
fi

这是因为在第一个未引用的情况下变量扩展后bash看到了这样的事实:

if [ -z white space ]
then
  ...
fi

并且-z运算符只需要一个,而不是两个参数.在第二个,引用案例bash看到这个:

if [ -z "white space" ]
then
  ...
fi

即只需要一个参数.另请注意,引号用于赋值

C="white space"

因为如果你写的话它也会产生错误

C=white space

因为这意味着:执行命令空间,环境包含添加的变量C = white.

因此,一般来说,您应该引用这些表达式,以确保您的代码对不可预见的变量值更加健壮.如果变量值来自输入,文件等,则尤其如此.通常可以放弃整数变量的引号,或者只想在echo $C中显示变量的值.

(编辑:李大同)

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

    推荐文章
      热点阅读