script if items

http://www.study-area.org/linux/system/linux_shell.htm


script 之所以聰明﹐在於它能夠對一些條件進行測試( test )。您可以直接用 test 命令﹐也可以用 if 敘述﹐例如﹕test -f ~/test.sh 。它的意思是測試一下 ~/test.sh 這個檔案是否存在﹐這個 -f 通常用在檔案上面的測試﹐除了它﹐還有很多﹕
標籤代表意思
-G存在﹐並且由 GID 所執行的行程所擁有。
-L存在﹐並且是 symbolic link 。
-O存在﹐並且由 UID 所執行的行程所擁有。
-S存在﹐並且是一個 socke 。
-b存在﹐並且是 block 檔案﹐例如磁碟等。
-c存在﹐並且是 character 檔案﹐例如終端或磁帶機。
-d存在﹐並且是一個目錄。
-e存在。
-f存在﹐並且是一個檔案。
-g存在﹐並且有 SGID 屬性。
-k存在﹐並且有 sticky bit 屬性。
-p存在﹐並且是用於行程間傳送資訊的 name pipe 或是 FIFO。
-r存在﹐並且是可讀的。
-s存在﹐並且體積大於 0 (非空檔)。
-u存在﹐並且有 SUID 屬性。
-w存在﹐並且可寫入。
-x存在﹐並且可執行。
事實上﹐關於這些測試項目還有很多很多﹐您可以 man bash 然後參考 CONDITIONAL EXPRESSIONS 那部份。另外﹐我們還可以同時對兩個檔案進行測試﹐例如﹕test file1 -nt file2 就是測試 file1 是否比 file2 要新。這種測試使用的標籤是﹕
標籤代表意思
-ntNewer Than﹕第一個檔案比第二個檔案要新。
-otOlder Than﹕第一個檔案比第二個檔案要舊。
-efEqual File﹕第一個檔案和第二個檔案其實都是同一個檔案 (如 link)。
標籤代表意思
=等於
!=不等於
<小於
>大於
-eq等於
-ne不等於
-lt小於
-gt大於
-le小於或等於
-ge大於或等於
-a雙方都成立
-o單方成立
-z空字串
-n非空字串

留言