shell程式設計中使用到得if語句內判斷引數
-b當file存在並且是塊檔案時返回真
-c當file存在並且是字元檔案時返回真
-d當pathname存在並且是乙個目錄時返回真
-e當pathname指定的檔案或目錄存在時返回真
-f當file存在並且是正規檔案時返回真
-g當由pathname指定的檔案或目錄存在並且設定了sgid位時返回為真
-h當file存在並且是符號鏈結檔案時返回真,該選項在一些老系統上無效
-k當由pathname指定的檔案或目錄存在並且設定了「粘滯」位時返回真
-p當file存在並且是命令管道時返回為真
-r當由pathname指定的檔案或目錄存在並且可讀時返回為真
-s當file存在檔案大小大於0時返回真
-u當由pathname指定的檔案或目錄存在並且設定了suid位時返回真
-w當由pathname指定的檔案或目錄存在並且可執行時返回真。乙個目錄為了它的內容被訪問必然是可執行的。
-o當由pathname指定的檔案或目錄存在並且被子當前程序的有效使用者id所指定的使用者擁有時返回真。
unixshell 裡面比較字元寫法:
-eq 等於
-ne 不等於
-gt 大於
-lt 小於
-le 小於等於
-ge 大於等於
-z 空串
= 兩個字元相等
!= 兩個字元不等
-n 非空串
更為詳細的說明:
檔案比較運算子
-efilename 如果 filename存在,則為真 [-e /var/log/syslog ]
-dfilename 如果 filename為目錄,則為真 [-d /tmp/mydir ]
-ffilename 如果 filename為常規檔案,則為真 [-f /usr/bin/grep ]
-lfilename 如果 filename為符號鏈結,則為真 [-l /usr/bin/grep ]
-rfilename 如果 filename可讀,則為真 [-r /var/log/syslog ]
-wfilename 如果 filename可寫,則為真 [-w /var/mytmp.txt ]
-xfilename 如果 filename可執行,則為真 [-l /usr/bin/grep ]
filename1-nt filename2 如果 filename1比 filename2 新,則為真[ /tmp/install/etc/services -nt/etc/services ]
filename1-ot filename2 如果 filename1比 filename2 舊,則為真 [ /boot/bzimage -otarch/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中的if判斷
e file 如果 file存在,則為真 d file 如果 file為目錄,則為真 f file 如果 file為常規檔案,則為真 l file 如果 file為符號鏈結,則為真 r file 如果 file可讀,則為真 w file 如果 file可寫,則為真 x file 如果 file可執行...
Linux shell中的變數
1.變數 1 名稱 字母 數字 下劃線組成,數字不能開頭 2 在bash中,變數的預設型別都是字串型,別的型別要指定 2.變數分類 1 本地變數 使用者變數 區域性變數只在建立它們的shell中使用,也可以修改 2 環境變數 可以在建立它們的shell及其派生出來的任意子程式中使用和修改 有些變數是...
linux shell 中 的含義
介紹下shell中的katex parse error expected eof got at position 4 和 使用範例,本文給出了不 分別替換得到不同的值 刪掉第乙個 及其左邊的字串 dir1 dir2 dir3 my.file.txt 刪掉最後乙個 及其左邊的字串 my.file.tx...