shell 中的if语句

1
2
3
4
if*[*"a"*=*"a"*] // 空格用*标示
then
echo "a = a"
fi

 

   最近几天写脚本,遇到if语句时总是吃不准。这次总结一下。

使用if语句有2中方式,一种是使用test命令另一种是使用“[]”,其中后者比较常用。

方法一,使用test命令,这个命令返回一个boolean值。

1
test -e /dataa || echo "不存在"

上面的例子使用了判断语句的短路功能,即如果“||”前面是true的话,后面的语句就没有必要执行了。所以不会显示“不存在”。

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-e 通过文件名文件是否存在
-f 通过文件名判断是否是文件
-d 通过文件名判断是否为目录
                            
-eq 判断两个数值是否相等
-nq 判断两个数值是否不相等
-gt 判断第一个数值是否大于第二个数值
-lt 判断第一个数值是否小于第二个数值
-ge 判断第一个数值是否大于等于第二个数值
-le 判断第一个数值是否小于等于第二个数值
                            
-z 判断字符串是否是空串
-n 判断字符串是否不是空串
=  判断两个字符串是否相等
!=判断两个字符串是否不相等
-a 相等于&&
-o 相当于||
! 逻辑非

方法二:

除test命令外,还可以使用“[]”,但是需要注意的是需要用空格在各个单位间,如:

1
2
3
4
if [ "a" = "a" ]
then
echo "a = a"
fi

在判断的时候使用“==”或者是“=”都是可以的。其中“[]”中的变量最好用双引号设置,常量用双引号和单引号都行。

这种形式可能和test命令有关,对比下:

1
2
3
4
if test "a" = "a"
then
echo "a = a"
fi

下面的写法也是可行的:

1
2
3
if test "a" = "a" ;then
echo "a = a"
fi



转自 http://hanzc.diandian.com/post/2012-10-11/40040042777
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值