linux shell中if的各種判斷

2021-10-04 23:08:14 字數 1986 閱讀 7828

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...