歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Linux之Shell 比較運算符

Linux之Shell 比較運算符

日期:2017/3/1 9:55:00   编辑:SHELL編程

Linux之Shell 比較運算符

測試命令

運算符 描述 示例 文件比較運算符 -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 ]

test命令用於檢查某個條件是否成立,它可以進行數值、字符和文件3個方面的測試,其測試符和相應的功能分別如下。

(1)數值測試:

  -eq 等於則為真。

  -ne 不等於則為真。

  -gt 大於則為真。

  -ge 大於等於則為真。

  -lt 小於則為真。

  -le 小於等於則為真。

(2)字串測試:

  = 等於則為真。

  != 不相等則為真。

  -z字串 字串長度偽則為真。

  -n字串 字串長度不偽則為真。

(3)文件測試:

  -e文件名 如果文件存在則為真。

  -r文件名 如果文件存在且可讀則為真。

  -w文件名 如果文件存在且可寫則為真。

  -x文件名 如果文件存在且可執行則為真。

  -s文件名 如果文件存在且至少有一個字符則為真。

  -d文件名 如果文件存在且為目錄則為真。

  -f文件名 如果文件存在且為普通文件則為真。

  -c文件名 如果文件存在且為字符型特殊文件則為真。

  -b文件名 如果文件存在且為塊特殊文件則為真

Copyright © Linux教程網 All Rights Reserved