linux shell 判斷表示式

2021-08-29 02:24:16 字數 1374 閱讀 9728

檔案比較運算子

-e  filename  如果 filename存在,則為真  [ -e /var/log/syslog ]

-d  filename  如果 filename為目錄,則為真  [ -d /tmp/mydir ]

-f  filename  如果 filename為常規檔案,則為真  [ -f /usr/bin/grep ]

-l  filename  如果 filename為符號鏈結,則為真  [ -l /usr/bin/grep ]

-r  filename  如果 filename可讀,則為真  [ -r /var/log/syslog ]

-w  filename  如果 filename可寫,則為真  [ -w /var/mytmp.txt ]

-x  filename  如果 filename可執行,則為真  [ -l /usr/bin/grep ]

filename1 -nt  filename2  

如果 filename1比 filename2新,則為真[ /tmp/install/etc/services -nt /etc/services ]

filename1-otfilename2  

如果 filename1比 filename2舊,則為真  [ /boot/bzimage -ot arch/i386/boot/bzimage ]

字串比較運算子 (請注意引號的使用,這是防止空格擾亂**的好方法)

-zstring  如果 string長度為零,則為真  [ -z "$myvar" ]

-nstring  如果 string長度非零,則為真  [ -n "$myvar" ]

string1=string2  

如果 string1與 string2相同,則為真  [ "$myvar" = "one two three" ]

string1!=string2  

如果 string1與 string2不同,則為真  [ "$myvar" != "one two three" ]

算術比較運算子

num1 -eq  num2  等於 [ 3 -eq $mynum ]

num1 -ne  num2  不等於 [ 3 -ne $mynum ]

num1 -lt  num2  小於 [ 3 -lt $mynum ]

num1 -le  num2  小於或等於 [ 3 -le $mynum ]

num1 -gt  num2  大於 [ 3 -gt $mynum ]

num1 -ge  num2  大於或等於 [ 3 -ge $mynum ]

Linux Shell之表示式

嚴格來說,shell中沒有表示式的概念。shell本身事實上僅僅是一堆命令的集合。當然也不是胡亂的堆在一起。而是有一定的組織。僅僅是這個組織不那麼嚴謹。所以本文不是要真的總結所謂的表示式,而是把shell中一些犄角旮旯的東西拼湊在一起。實在不知道它們屬於那個分類。m meng scripts m d...

if判斷表示式

primary 意義 a file 如果file 存在則為真。b file 如果file 存在且是乙個塊特殊檔案則為真。c file 如果file 存在且是乙個字特殊檔案則為真。d file 如果file 存在且是乙個目錄則為真。e file 如果file 存在則為真。f file 如果file 存...

Linux shell正規表示式

符 轉義字元。例如 將邏輯否的!看做普通字元,使字元失去本身意義 符匹配字串開始的位置,即以。開頭 符匹配字串結束的位置,即以。結束 符匹配任意乙個字元 符匹配前面表示式0次或n次,即 號前面的字元可以重複0次或多次 a z 匹配a z中任意乙個字母 a z 匹配不在a z這幾個字元的任意字元 匹配...