大家好,又见面了,我是你们的朋友全栈君。
在shell中if条件判断语句和我们的C、C 、Java等语言是不同的,shell的if语句条件必须用[ ]括起来,另外[ ]里外都需要用空格与周围隔开(例如[ a==b ]),否则报错;另外与if配对的有else if和else,如果我们要写这两个必须后面跟有东西,否则也会报错,在编程中不跟是可以的:
代码语言:javascript复制if(a==b)
printf("a=b");
else
{
//什么都没有
}
但是shell中是不可以的,简单的看一下shell里的if、else if和else的简单使用:
代码语言:javascript复制#!/bin/bash
a=10
b=20
if [ $a == $b ]#注意[]里外的空格
then #if条件成立后引出后续
echo 'a=b'
elif [ $a -gt $b] #如果使用else if 必须在最后多加一
fi #结束
then echo "a > b" #所有包含if的判断,都需要then引出后续
else#必须有操作,否则只写else报错
echo 'a<b'
fi #if结束标志,必须有
以上就是简单的条件判断语句举例说明,下面我们来看看shell的test命令说明:Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。下面我们接着对这个三个方面进行举例说明: 1、数字:
这里的数值的比较条件分别为:
代码语言:javascript复制 -eq 是否相等
-ne 是否不等
-gt 是否大于
-ge 是否大于等于
-lt 是否小于
-le 是否小于等于
如果变量名过长取值比较需要加[],如比较val和val1:[val] -eq [val1] 2、字符串比较: 字符串的比较:
代码语言:javascript复制 = 两个字符串是否相等
!= 两个字符转是否不等
-n 字符串是否为空
-z 字符串是否不空
字符串变量取值规则和数字一样,变量长的话加[]。 3、文件测试:
文件是针对单个文件的:
代码语言:javascript复制-e 文件名 如果文件存在则为真
-r 文件名 如果文件存在且可读则为真
-w 文件名 如果文件存在且可写则为真
-x 文件名 如果文件存在且可执行则为真
-s 文件名 如果文件存在且至少有一个字符则为真
-d 文件名 如果文件存在且为目录则为真
-f 文件名 如果文件存在且为普通文件则为真
-c 文件名 如果文件存在且为字符型特殊文件则为真
-b 文件名 如果文件存在且为块特殊文件则为真
具体展示就不在这里展示了,最后我们来看看执行结果:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157489.html原文链接:https://javaforall.cn