linux字符串加引号,务必在判断字符串时,给shell变量加上引号

先我们来看看在shell中如何判断字符串为null

#!/bin/bash

a="a = b"

if [ $a ]

then

echo true

else

echo false

fi

if [ "$a" ]

then

echo true

else

echo false

fi

if [ -z $b ]

then

echo true

else

echo false

fi

if [ -z "$b" ]

then

echo true

else

echo false

fi

由上可以看出来判断字符串是否null,可以用-z  或者  直接 [ $a ] 来判断

但是我们要注意的是,给变量加上引号,这是一个好习惯, 比如 当a=“a = b”的时候,

if [ $a ]

then

echo true

else

echo false

fi

就会给出错误答案。

所以在给变量做test的时候,务必给变量加上引号。

扩展一下, -z 是判断字符串是否为空, -n 是判断字符串不为空, 不要混淆。

如果$string为空的话, [ -n "$string" -o "$a" = "$b" ]可能会在某些版本的Bash中产生错误. 安全的做法是附加一个额外的字符给可能的空变量,

[ "x$string" != x -o "x$a" ="x$b" ] ("x"字符是可以相互抵消的).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值