1. 程式人生 > >【shell】Linux shell中括號的用法

【shell】Linux shell中括號的用法

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中括號的用法