Linux shell中括号的用法
概述
本文主要介绍Linux中括号的用法,主要包含判断文件和变量。 **注意事项**:中括号两边必须有空格。
使用中括号会涉及到的知识 &&、||
在本文对文件或者变量做判断的时候,可能会多次使用到&&和||这两个符号,所以在我们进入中括号的学习之前首先了解一下这两个符号的作用。 &&:并 --> 两真才为真,如果有两个条件,第一个为真,那么肯定会判断第二个条件;如果第一个条件为假,那么第二个条件将不会判断。(第一个为真,那么需要判断第二个条件才知道整体结果是否为真,如果第一个条件为假,那么无论第二个条件为真还是假,最终的结果都是假)
例1:
[ 假 ] && echo 1 最终结果无输出,因为第一个条件为假,后面的echo 0不会执行
例2:
[ 真 ] && echo 0 最终的结果为 0 ,因为一个条件为真,肯定会执行第二个条件。
||:且 -->一个为真即是真。如果第一个条件为真,那么不会判断第二个条件(因为一真即真),如果第一个条件为假,那么判断第二个条件(第二个条件如果为真还有机会使得整体的结果为真)
例3:
[ 真 ] || echo 0 # 最终结果无输出,因为第一个条件为真,echo 0 不会执行。
例4:
[ 假 ] || echo 0 #最终的结果输出0
小练习
[ 2 -eq 3 ] && echo 0
[ 2 -eq 3 ] || echo 1
最终输出的结果是?
结果是:1
&& 和 || 的综合使用
先看个小例子:
[ 2 -eq 3 ] && echo 0 || echo 1
最终结果:1
解释:如果 [ ] 的条件为真,那么执行echo 0,如果[ ]的条件为假,那么执行echo 1.
Linux 中括号运用之判断文件
常用参数:
-z:判断文件是否存在
例子:
[root@arppinging ~]# [ -z adsfsfsdfs.txt ] && echo 0 || echo 1 1 # 最终结果为1 ,因为系统中没有存在ads...txt文件
-d:判断目录是否存在
例子:
[root@arppinging ~]# [ -d /var/www ] && echo 0 || echo 1 0 #输出结果为0,因为系统中有/var/www这个目录
-x判断文件是否有执行(x)权限
例子:
[root@arppinging ~]# [ -x a.txt ] && echo 0 || echo 1 1
Linux 中括号运用之判断变量
-n 判断变量值是否为空
[root@arppinging ~]# [ -n $kfjksdfjl ] && echo 0 || echo 1 0 #变量为空,即为9
-eq 判断变量或参数是否相等
例子:
[ 1 -eq 1 ] && echo 0 || echo 1 0 # 1=1 so...
-ne 不等于
例子:
[ 1 -ne 2 ] && echo 0 || echo 1 0 # 1!=2
-gt 大于、-ge 大于等于
例子:
[root@XiaoPeng scripts]# [ 1 -gt 2 ] && echo 0 || echo 1 1
-lt 小于、-le 小于等于
[root@XiaoPeng scripts]# [ 1 -lt 2 ] && echo 0 || echo 1 0
双中括号运用
常见参数
=:等于
例子:
[root@XiaoPeng scripts]# [[ 1 = 2 ]] && echo 0 || echo 1 1
!= 不等于
例子:
[root@XiaoPeng scripts]# [[ 1 != 2 ]] && echo 0 || echo 1 0
以此类推,还有 >,<,<=,>=等参数,这里就不再一一写出来了。
版权:arppinging
原文链接:https://www.f2er.com/bash/388427.html