shell指令碼檔案型別與字串判斷

2021-05-24 12:07:39 字數 1577 閱讀 2440

運算子

描述

示例

檔案比較運算子

-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-ot filename2

如果 filename1比 filename2舊,則為真

[ /boot/bzimage -ot arch/i386/boot/bzimage ]

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

-z string

如果 string長度為零,則為真

[ -z "$myvar" ]

-n string

如果 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 ]

shell指令碼判斷檔案型別

1在shell中稱為 位置引數 表示傳入的第1個引數 第1個入參 test z 1 是乙個判斷表示式,用於判斷 1的值是否為空字串。雖然 linux 和 unix 的每個版本中都包含 test 命令,但該命令有乙個更常用的別名 左方括號 test 及其別名通常都可以在 usr bin 或 bin 取...

shell 指令碼檔案追蹤與 debug

scripts 在執行之前,最怕的就是出現語法錯誤的問題了!那麼我們如何 debug 呢?有沒有辦法不需要透過直接執行該 scripts 就可以來判斷是否有問題呢?呵呵!當然是有的!我們就直接以 bash 的相關引數來進行判斷吧!sh或bash nvx scripts.sh 選項與引數 n 不要執行...

Shell指令碼之 字串

字串可以用單引號,也可以用雙引號,也可以不用引號。單引號 str this is a string 單引號字串的限制 1.單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的 2.單引號字串中不能出現單引號 對單引號使用轉義符後也不行 雙引號 name runnyu str hello,n 雙...