shell 指令碼 if 參數

來源:互聯網
上載者:User

[ -a FILE ] 如果 FILE 存在則為真。 [ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。 [ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。 [ -d FILE ] 如果 FILE 存在且是一個目錄則為真。 [ -e FILE ] 如果 FILE 存在則為真。 [ -f FILE ] 如果 FILE 存在且是一個普通檔案則為真。 [ -g FILE ] 如果 FILE 存在且已經設定了SGID則為真。 [ -h FILE ] 如果 FILE 存在且是一個符號串連則為真。 [ -k FILE ] 如果 FILE 存在且已經設定了粘制位則為真。 [ -p FILE ] 如果 FILE 存在且是一個名字管道(F如果O)則為真。 [ -r FILE ] 如果 FILE 存在且是可讀的則為真。 [ -s FILE ] 如果 FILE 存在且大小不為0則為真。 [ -t FD ] 如果檔案描述符 FD 開啟且指向一個終端則為真。 [ -u FILE ] 如果 FILE 存在且設定了SUID (set user ID)則為真。 [ -w FILE ] 如果 FILE 如果 FILE 存在且是可寫的則為真。 [ -x FILE ] 如果 FILE 存在且是可執行檔則為真。 [ -O FILE ] 如果 FILE 存在且屬有效使用者ID則為真。 [ -G FILE ] 如果 FILE 存在且屬有效使用者組則為真。 [ -L FILE ] 如果 FILE 存在且是一個符號串連則為真。 [ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read則為真。 [ -S FILE ] 如果 FILE 存在且是一個通訊端則為真。 [ FILE1 -nt FILE2 ] 如果 FILE1 has been changed more recently than FILE2, or 如果 FILE1 exists and FILE2 does not則為真。 [ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在則為真。 [ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的裝置和節點號則為真。 [ -o OPTIONNAME ] 如果 shell選項 “OPTIONNAME” 開啟則為真。 [ -z STRING ] “STRING” 的長度為零則為真。 [ -n STRING ] or [ STRING ] “STRING” 的長度為非零 non-zero則為真。 [ STRING1 == STRING2 ] 如果2個字串相同。 “=” may be used instead of “==” for strict POSIX compliance則為真。 [ STRING1 != STRING2 ] 如果字串不相等則為真。 [ STRING1 < STRING2 ] 如果 “STRING1” sorts before “STRING2” lexicographically in the current locale則為真。 [ STRING1 > STRING2 ] 如果 “STRING1” sorts after “STRING2” lexicographically in the current locale則為真。 [ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

運算子 描述 樣本
檔案比較子
-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 如果 filename1filename2 新,則為真 [ /tmp/install/etc/services -nt /etc/services ]
filename1 -ot filename2 如果 filename1filename2 舊,則為真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
字串比較運算子 (請注意引號的使用,這是防止空格擾亂代碼的好方法)
-z string 如果 string 長度為零,則為真 [ -z $myvar ]
-n string 如果 string 長度非零,則為真 [ -n $myvar ]
string1 = string2 如果 string1string2 相同,則為真 [ $myvar = one two three ]
string1 != string2 如果 string1string2 不同,則為真 [ $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 ]
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.