shell 中的if语句

来源:互联网 发布:暨南大学大数据研究所 编辑:程序博客网 时间:2024/06/06 02:31
if*[*"a"*=*"a"*] // 空格用*标示thenecho "a = a"fi

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

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

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

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

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

参数:

-e 通过文件名文件是否存在-f 通过文件名判断是否是文件-d 通过文件名判断是否为目录                            -eq 判断两个数值是否相等-nq 判断两个数值是否不相等-gt 判断第一个数值是否大于第二个数值-lt 判断第一个数值是否小于第二个数值-ge 判断第一个数值是否大于等于第二个数值-le 判断第一个数值是否小于等于第二个数值                            -z 判断字符串是否是空串-n 判断字符串是否不是空串=  判断两个字符串是否相等!=判断两个字符串是否不相等-a 相等于&&-o 相当于||! 逻辑非

方法二:

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

if [ "a" = "a" ]thenecho "a = a"fi

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

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

if test "a" = "a"thenecho "a = a"fi

下面的写法也是可行的:

if test "a" = "a" ;thenecho "a = a"fi




原创粉丝点击