最近編寫腳本,常看到有 if [ -x $variable ] 類的條件語句,不知道相應參數的意義究竟是什麼,shell
特摘錄以下:from http://blog.csdn.net/aaaaatiger/article/details/1713611less
thanks!spa
1 [ -a FILE ] 若是 FILE 存在則爲真。 2 [ -b FILE ] 若是 FILE 存在且是一個塊特殊文件則爲真。 3 [ -c FILE ] 若是 FILE 存在且是一個字特殊文件則爲真。 4 [ -d FILE ] 若是 FILE 存在且是一個目錄則爲真。 5 [ -e FILE ] 若是 FILE 存在則爲真。 6 [ -f FILE ] 若是 FILE 存在且是一個普通文件則爲真。 7 [ -g FILE ] 若是 FILE 存在且已經設置了SGID則爲真。 8 [ -h FILE ] 若是 FILE 存在且是一個符號鏈接則爲真。 9 [ -k FILE ] 若是 FILE 存在且已經設置了粘制位則爲真。 10 [ -p FILE ] 若是 FILE 存在且是一個名字管道(F若是O)則爲真。 11 [ -r FILE ] 若是 FILE 存在且是可讀的則爲真。 12 [ -s FILE ] 若是 FILE 存在且大小不爲0則爲真。 13 [ -t FD ] 若是文件描述符 FD 打開且指向一個終端則爲真。 14 [ -u FILE ] 若是 FILE 存在且設置了SUID (set user ID)則爲真。 15 [ -w FILE ] 若是 FILE 若是 FILE 存在且是可寫的則爲真。 16 [ -x FILE ] 若是 FILE 存在且是可執行的則爲真。 17 [ -O FILE ] 若是 FILE 存在且屬有效用戶ID則爲真。 18 [ -G FILE ] 若是 FILE 存在且屬有效用戶組則爲真。 19 [ -L FILE ] 若是 FILE 存在且是一個符號鏈接則爲真。 20 [ -N FILE ] 若是 FILE 存在 and has been mod若是ied since it was last read則爲真。 21 [ -S FILE ] 若是 FILE 存在且是一個套接字則爲真。 22 [ FILE1 -nt FILE2 ] 若是 FILE1 has been changed more recently than FILE2, or 若是 FILE1 exists and FILE2 does not則爲真。 23 [ FILE1 -ot FILE2 ] 若是 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在則爲真。 24 [ FILE1 -ef FILE2 ] 若是 FILE1 和 FILE2 指向相同的設備和節點號則爲真。 25 [ -o OPTIONNAME ] 若是 shell選項 「OPTIONNAME」 開啓則爲真。 26 [ -z STRING ] 「STRING」 的長度爲零則爲真。 27 [ -n STRING ] or [ STRING ] 「STRING」 的長度爲非零 non-zero則爲真。 28 [ STRING1 == STRING2 ] 若是2個字符串相同。 「=」 may be used instead of 「==」 for strict POSIX compliance則爲真。 29 [ STRING1 != STRING2 ] 若是字符串不相等則爲真。 30 [ STRING1 < STRING2 ] 若是 「STRING1」 sorts before 「STRING2」 lexicographically in the current locale則爲真。 31 [ STRING1 > STRING2 ] 若是 「STRING1」 sorts after 「STRING2」 lexicographically in the current locale則爲真。 32 [ 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.
2015-01-18 21:37:17.net
補充:code
1 #字符串 2 stra=strb #兩個串相同 3 stra!=strb #兩個串不相同 4 -n stra #字符串非空(長度>0)時爲真 5 -z stra #字符串爲空(長度=0)時爲真 6 stra #字符串爲非空時爲真 7 8 #數字方面的判斷 9 a -eq b #兩數相等時爲真(a==b) 10 a -ne b #兩數不相等時爲真(a!=b) 11 a -gt b #(a>b) 12 a -ge b #(a>=b) 13 a -lt b #(a<b) 14 a -le b #(a<=b) 15 16 #邏輯判斷 17 -a #邏輯與 18 -o #邏輯或 19 ! #邏輯非
2015-01-21 16:43:15blog