1. 程式人生 > >linux[基礎]16-shell判斷用戶參數[01]

linux[基礎]16-shell判斷用戶參數[01]

判斷 nbsp 可執行 center ron shel 當前 amp 系統

Shell判斷用戶參數

條件測試語句能夠測試特點的表達式是否成立

  當條件成立時返回值為0

  否則返回其他數值

測試語句格式:

  [ 條件表達式 ] 兩側均應有一個空格

  測試語句有:

    文件測試

    邏輯測試

    整數值比較

    字符串比較

文件測試:

  [ 操作符 文件或目錄名 ]

參數

作用

-d

測試是否為目錄

-e

測試文件或目錄是否存在

-f

判斷是否為文件

-r

測試當前用戶是否有權讀

-w

測試當前用戶是否可寫

-x

測試當前用戶是否可執行

  實例:

    [[email protected] ~]# [ -d /etc ] #判斷是否為一個目錄

    [[email protected] ~]# echo $?

    0

    [[email protected] ~]# [ -f /etc/inittab ] #判斷是否為一個文件

    [[email protected] ~]# echo $?

    0

    [[email protected] ~]# [ -r /etc/inittab ] #判斷當前用戶是否可讀

    [[email protected] ~]# echo $?

    0

    [[email protected] ~]# [ -w /etc/inittab ] #判斷當前用戶是否可寫

    [[email protected] ~]# echo $?

    0

    [[email protected] ~]# [ -x /etc/inittab ] #判斷當前用戶是否可執行

    [[email protected] ~]# echo $?

    1

  實例2

    [[email protected] ~]# [ -e /dev/cdrom ] && echo "Exist"

    Exist

邏輯測試:

  [ 表達式1 ] 操作符 [ 表達式2 ]

操作符

作用

&&

邏輯的與,“而且”的意思

||

邏輯的或,“或者”的以上

!

邏輯的否

  實例1

    Root用戶下:

      [[email protected] ~]# [ $USER != root ] && echo "user"

      [[email protected] ~]#

    普通用戶下:

      [[email protected] ~]$ [ $USER != root ] && echo "user"

      user

      [[email protected] ~]$

  實例2

    Root用戶下:

      [[email protected] ~]# [ $USER != root ] && echo "User" || echo "root"

      root

      [[email protected] ~]#

整數值比較:

  [ 整數1 操作符 整數2 ]

操作符

作用

-eq

判斷是否等於

-gt

判斷是否大於

-lt

判斷是否小於

-le

判斷是否等於小於

-ge

判斷是否等於大於

  實例1

    [[email protected] ~]# [ 10 -gt 10 ] #判斷是否10大於10

    [[email protected] ~]# echo $?

    1

  實例2

    [[email protected] ~]# [ 10 -eq 10 ] #判斷10是否等於10

    [[email protected] ~]# echo $?

    0

  實例3

    [[email protected] ~]# FreeMem=`free -m | grep cache: | awk ‘{print $3}‘`

    [[email protected] ~]# echo $FreeMem

    205

    [[email protected] ~]# [ $FreeMem -lt 1024 ] && echo "內存不足"

    內存不足

    [[email protected] ~]#

字符串比較:

   [ 字符串1 操作符 字符串2 ]

操作符

作用

=

比較字符串內容是否相同

!=

比較字符串內容是否不同

-z

判斷字符串內容是否為空

實例1

  [[email protected] ~]# [ -z $String ] #判斷變量是否為空

  [[email protected] ~]# echo $?

  0

實例2

  [[email protected] ~]# [ $LANG != "en.US" ] && echo "Not en.US"

  #判斷系統語言是否為en.us

  Not en.US

linux[基礎]16-shell判斷用戶參數[01]