shell判斷式與判斷符號[]

來源:互聯網
上載者:User

shell判斷式與判斷符號[]
1. 判斷式test命令用於檢測檔案類型和比較值。 判斷檔案是否存在:

[work@www sh]$ test -e file.txt  && echo "exist" || echo "not exist"           not exist[work@www sh]$ 

檢查檔案類型: -e 檔案是否存在 test -e filename
-f 檔案是否存在,且為檔案 file
-d 檔案是否存在,且為目錄 directory
-b 檔案是否存在,且為block device裝置
-c 檔案是否存在,且為character device裝置
-S 檔案是否存在,且為Socket檔案
-p 檔案是否存在,且為FIFO(pipe)檔案
-L 檔案是否存在,且為串連檔案
檢查檔案許可權 -r 檔案是否存在,且可讀許可權
-w 檔案是否存在,且可寫入權限
-x 檔案是否存在,且可執行許可權
-u 檔案是否存在,且具有SUID屬性
-g 檔案是否存在,且具有SGID屬性
-k 檔案是否存在,且具有 Sticky bit 屬性
-s 檔案是否存在,且為 非空白檔案

兩個檔案比較 -nt newer than 判斷file1是否比file2新
test file1 -nt file2
-ot older than 判斷file1是否比file2舊
-ef 判斷是否為同一檔案,可用在判斷hard link上,判定兩個檔案是否指向同一個inode

兩個整數的判斷 -eq equal 相等, test n1 -eq n2
-ne not equal 不相等
-gt greater than 大於
-lt less than 小於
-ge greater than or equal 大於等於
-le less than or equal 小於等於

判定字串 test -z string 判斷字串是否為0, string為空白,返回true, test -z string
test -n string 判斷字串是否非為0, string 為空白, 返回false, -n可省略
test str1 = str2 是否相等
test str1 != str2 是否不相等

多重條件 -a 同時成立,and , test -r file -a -x file : file同時具有rx許可權時,返回true
-o 任意一個成立, or
! 取反

如下:
#!/bin/bashtest -e pass && echo "file exist"test -f pass && echo "regular file"test -d pass && echo "directory"
2. 判斷符號[]判斷符號[] 的使用同test基本一樣。 []裡面每個組件都需要用空格分隔。 變數最好用引號包圍。
#!/bin/bashname="Bill gates"[ "$name" == "bill gates" ]echo $?
地址:http://blog.csdn.net/yonggang7/article/details/40479141

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.