一、字符串的比較判斷mysql
=:第一個字符串與第二個字符串相同。 !=:第一個字符串與第二個字符串不相同,其中 「 !」表示取反。 -z:檢查字符串是否爲空,對於未定義或賦予空值的變量將是爲空串 -n:檢查字符串的長度,當串的長度大於0時爲真(串非空)
二、數字的判斷sql
-eq:第一個數等於(Equal)第二個數; -ne:第一個數不等於(Not Equal)第二個數; -gt:第一個數大於(Greater Than)第二個數; -lt:第一個數小於(Lesser Than)第二個數; -le:第一個數小於或等於(Lesser or Equal)第二個數; -ge:第一個數大於或等於(Greater or Equal)第二個數;
三、文件的判斷markdown
-d:測試是否爲目錄(Directory); -e:測試文件或目錄是否存在(Exist); -f:測試是否爲文件(File); -r:測試當前用戶是否有權限讀取(Read); -w:測試當前用戶是否有權限寫入(Write); -x:測試是否設置有可執行(Excute)權限; -c:測試文件是否爲字符特殊文件 -b:測試文件是否爲塊特殊文件 -s:測試文件大小是否爲非0 -t:測試當文件描述符(默認爲1)指定的設備是否爲終端
四、複雜邏輯判斷
!:表示「不」,只有當條件不成立時,整個測試命令返回的值才爲0,即結果成立;
&&:表示「並且」,只有當先後兩個條件都成立時,整個測試命令的返回值才爲0,即結果成立,使用test命令測試時能夠使用「-a」代替;
||:表示「或者」,只要先後兩個條件有一個成立,整個測試命令返回的值即爲0,即結果成立。使用test命令測試時能夠使用「-o」代替;
好比:oracle
if [ $USER = "oracle" ] || [ $USER = "mysql" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
備註:對文件的判斷所使用到的相關參數整理ide
[ -a FILENAME ] 若是 FILENAME 存在則爲真。 [ -b FILENAME ] 若是 FILENAME 存在且是一個塊特殊文件則爲真。 [ -c FILENAME ] 若是 FILENAME 存在且是一個字特殊文件則爲真。 [ -d FILENAME ] 若是 FILENAME 存在且是一個目錄則爲真。 [ -e FILENAME ] 若是 FILENAME 存在則爲真。 [ -f FILENAME ] 若是 FILENAME 存在且是一個普通文件則爲真。 [ -g FILENAME ] 若是 FILENAME 存在且已經設置了SGID則爲真。 [ -h FILENAME ] 若是 FILENAME 存在且是一個符號鏈接則爲真。 [ -k FILENAME ] 若是 FILENAME 存在且已經設置了粘制位則爲真。 [ -p FILENAME ] 若是 FILENAME 存在且是一個名字管道(F若是O)則爲真。 [ -r FILENAME ] 若是 FILENAME 存在且是可讀的則爲真。 [ -s FILENAME ] 若是 FILENAME 存在且大小不爲0則爲真。 [ -t FD ] 若是文件描述符 FD 打開且指向一個終端則爲真。 [ -u FILENAME ] 若是 FILENAME 存在且設置了SUID (set user ID)則爲真。 [ -w FILENAME ] 若是 FILENAME 若是 FILENAME 存在且是可寫的則爲真。 [ -x FILENAME ] 若是 FILENAME 存在且是可執行的則爲真。 [ -O FILENAME ] 若是 FILENAME 存在且屬有效用戶ID則爲真。 [ -G FILENAME ] 若是 FILENAME 存在且屬有效用戶組則爲真。 [ -L FILENAME ] 若是 FILENAME 存在且是一個符號鏈接則爲真。 [ -N FILENAME ] 若是 FILENAME 存在 and has been mod若是ied since it was last read則爲真。 [ -S FILENAME ] 若是 FILENAME 存在且是一個套接字則爲真。 [ FILENAME1 -nt FILENAME2 ] 若是 FILENAME1 has been changed more recently than FILENAME2, or 若是 FILENAME1 exists and FILENAME2 does not則爲真。 [ FILENAME1 -ot FILENAME2 ] 若是 FILENAME1 比 FILENAME2 要老, 或者 FILENAME2 存在且 FILENAME1 不存在則爲真。 [ FILENAME1 -ef FILENAME2 ] 若是 FILENAME1 和 FILENAME2 指向相同的設備和節點號則爲真。