十六周三次课 2018.02.06 shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断

20.5 shell脚本中的逻辑判断


格式1例子:(要注意有空格)-gt是大于的意思

写成脚本就是:


格式2例子脚本:(比第一种多了一个else,意思是反之则怎么样)


我们也可以看一下它的执行过程

格式3例子脚本:(意思是大于4显示>1,大于1并且小于6则显示<6 >1,既不大于1也不大于6则显示nook)elif等于又加了一个条件判断,可以写多次


如果想直接用>或<,那么就用这种格式:

大于:-gt

小于:-lt

等于:-eq

不等于:-ne

大于等于:-ge

小于等于:-le

条件我们也可以写多个:&&表示并且,||表示或者


20.6 文件目录属性判断


第一个例子:

意思是如果文件$f存在那么执行echo $f exist,不存在就创建这个文件。

剩下几个例子写法和上面类似。

判断是否可读可写可执行是根据当前执行用户判断的。

平时我们这样用的比较多:(意思是如果这个文件是普通文件并且存在的话,那么就删了它,这里的&&表示前面的成立才能执行后面的。)

它的效果等同于,所以还是比较方便的,他只需要写一行。

中间的&&换成||这表示前面的不成立才执行后面的。

前面加叹号则是取反。

20.7 if特殊用法


第一个特殊用法的例子:(如果没有红框部分,那么当lalal文件不存在的时候就会报错,也就是一个bug)

其实我们遇到这种情况完全可以给它加一个-f的判断就更完美了。(这个时候-z的判断就可以不用了),要记得加exit退出,不然不存在这个文件的时候,它还是会往下执行。


-n和-z的意思是相反的,意思是当变量a不为空,所以它也可以用来判断文件的内容是否不为空。(变量需要双引号括起来,但是文件不用)


也可以判断变量是否不为空,(这里的b变量是空的)


我们还可以使用命令的结果作为判断条件。

比如说我们想看看系统用户中是否有user1这个用户,我们就会想到用这个命令:(w表示一个单词,是为了避免会有user11被匹配出来)


那么我们可以这么写脚本,(但是它会输出红框内容)


不想显示输出那么我们可以使用-q就可以达到目的。


反之如果user1不存在,那么我们可以这么写


20.8 case判断 


当值为value1的时候,怎么这怎么样

当值为value2的时候,怎么这怎么样

除此之外又怎么样(除此之外用*)表示)

;;表示一个判断结束。

在case中是可以使用|的,如value1|value2)他的意思是或。

下面我们来写一下脚本:

    

这个脚本的目的是让用户输入一个数字,然后用这个脚本去判断这个数字的范围。复制代码进去的时候记得去掉特殊符号。

read是让用户输入,末尾的n是捕获用户输入的字符的变量名。


exit后面的1,就是$?的值。(也就是说如果脚本只有这一段的话,执行完之后值为空的话,用$?检查错误的时候会显示1)


n1这一行的意思是判断输入的是否是数字

当输入的是数字会被清空,


表示n1不为空的话输出后面的内容,并且$?显示1,也就是说输入的不是数字的话就不会清空,那么也就非空,非空的话就会输出后面的内容(意思是让你输入一个纯数字))

/20.9 case判断

如果为空,也就是用户输入的是数字的时候就会往下走,

表示输入的数字小于60并且大于等于0的时候我们标记为tag为1,(这是一个变量,因为我们需要用case判断,tag=1这个变量是为了case判断准备的)

格式与上面一样,else就是不满足如上条件那么tag=0,这种就是输入超过100的情况。

然后我们就开始使用case判断,使用了上面的tag1-4变量。

我们可以执行一下试试,也可以看下它的执行过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值