1. 程式人生 > >Linux中的判斷式

Linux中的判斷式

說明 存在 linu linux中 目錄 -a passwd 基於 連接

格式一:test [參數] 判斷內容
格式二:[ [參數] 判斷內容 ]
  說明:
    a.格式二可以認為是格式一的縮寫
    b.格式二裏中括號和內容之間要有空格


基於文件的判斷
-d  判斷文件是否存在,並且是目錄文件
-e  判斷文件是否存在
-f  判斷文件是否存在,並且是普通文件
-l  判斷文件是否存在,並且為符號連接文件
[[email protected] temp]# test -e /etc/passwd
[[email protected] temp]# echo $?
0
[[email protected] temp]# [ -e /etc/passwd ]
[[email protected]

/* */ temp]# echo $?
0
[[email protected] temp]# [ -d /root ] && echo "yes" || echo "no"
yes

基於文件權限的判斷
-r   文件 判斷文件是否存在,並且擁有讀權限
-w  文件 判斷文件是否存在,並且擁有寫權限
-x   文件 判斷文件是否存在,並且擁有執行權限
[[email protected] temp]# [ -r data.txt ] && echo "yes" || echo "no"
yes

兩個文件之間的比較
文件1 -nt 文件2  文件1的修改時間比文件2新
文件1 -ot 文件2  文件1的修改時間比文件2晚
文件1 -ef 文件2  文件1和文件2的inode號是否一樣
[[email protected]

/* */ temp]# ln /xiaol/temp/data.txt /xiaol/temp/lndata.txt
[[email protected] temp]# [ /xiaol/temp/data.txt -ef /xiaol/temp/lndata.txt ] && echo "yes" || echo "no"
yes

兩個整數之間的比較
用的是:-eq -ne -gt -lt -ge -le這些,就不多解釋了
[[email protected] temp]# [ 23 -ge 22 ] && echo "yes" || echo "no"
yes

兩個字符串之間的比較
-z 字符串  判斷字符串是否為空
-n 字符串  判斷支付傳是否為非空
串1 == 串2  兩個字符串相等
串1 != 串2   兩個字符串不相等
[[email protected] temp]# a=1
[[email protected] temp]# b=2
[[email protected] temp]# [ "$a" == "$b" ] && echo "yes" || echo "no"
no

[[email protected] temp]# name=xiaol
[[email protected] temp]# [ -z "$name" ] && echo "yes" || echo "no"
no

多個判斷一起執行
判斷1 -a 判斷2  邏輯與
判斷1 -o 判斷2  邏輯或
! 判斷1      邏輯非

Linux中的判斷式