【shell】Linux shell中括號的用法
阿新 • • 發佈:2018-03-20
linux shell 中括號 運維 編程 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
【shell】Linux shell中括號的用法