一、test條件判斷 1,test文件測試: -b file 若文件存在且是一個塊特殊文件,則為真 -c file 若文件存在且是一個字符特殊文件,則為真 -d file 若文件存在且是一個目錄,則為真 -e file 若文件存在,則為真 -f file 若文件存在且為一個規(guī)則文件,則為真 -g file 若文件存在且設(shè)置了SGID位的值,則為真 -h file 若文件存在且為一個符號鏈接,則為真 -k file 若文件存在且設(shè)置了“sticky”位的值,則為真 -p file 若文件存在且為一已命名管道,則為真 -s file 若文件存在且其大小大于零,則為真 -u file 若文件存在且設(shè)置了SUID位的值,則為真 -r file 若文件存在且可讀,則為真 -w file 若文件存在且可寫,則為真 -x file 若文件存在且可執(zhí)行,則為真 -o file 若文件存在且被有效用戶ID所擁有,則為真 2,test字符串比較 -z string 若string長度為0,則為真 -n string 若string長度不為0,則為真 string1 = string2 若兩個字符串相等,則為真 string1 != string2 若兩個字符串不相等,則為真 3,test命令的數(shù)字比較操作符 int1 -eq int2 若int1等于int2,則為真 int1 –ne int2 若int1不等于int2,則為真 int1 –lt int2 若int1小于int2,則為真 int1 –le int2 若int1小于等于int2,則為真 int1 –gt int2 若int1大于int2,則為真 int1 –ge int2 若int1大于等于int2,則為真 4,test復(fù)合表達式 ! expr 若expr為假則復(fù)合表達式為真。expr可以是任何有效的測試表達式 expr1 -a expr2 若expr1和expr2都為真,則為真 expr1 -o expr2 若expr1和expr2有一個為真,則為真 二、shell里的特殊變量 # sh /usr/local/bkeep/shell.sh 001 002 I'm $0 is:/usr/local/bkeep/shell.sh //正在被執(zhí)行腳本的名字;`basename $0` I'm $1 is:001 //$1接收到的參數(shù) I'm $2 is:002 //$2接收到的參數(shù) I'm $# is:2 //總共接收到的參數(shù)個數(shù) I'm $* is:001 002 //把接收到的參數(shù)全部打印出來 I'm $@ is:001 002 //同上 I'm $? is:0 //上一個腳本的退出狀態(tài)“0”代表正常;“1”非正常退出 I'm $$ is:24137 //當(dāng)前執(zhí)行腳本的進程ID I'm $! is: //前一個后臺進程的id 三:其他 1.返回值 #? cd dir echo "$?" 如果dir存在,則返回0,不存在則返回1. 其他函數(shù)的命令也是一樣,比如diff,等等。 每個命令都會返回一個 exit 狀態(tài)(有時候也叫return 狀態(tài)).成功返回0,如果返回一個非0 值,通 同樣的,腳本中的函數(shù)和腳本本身都會返回退出狀態(tài).在腳本或者是腳本函數(shù)中執(zhí)行的最后的命 $?讀取最后執(zhí)行命令的退出碼.函數(shù)返回后,$?給出函數(shù)最后執(zhí)行的那條命令的退出碼.這種給 2 . $ 變量替換操作符 還有一個按鍵在左上角,即按鍵1的左邊。此按鍵有下面的作用。即將ls -l的結(jié)果傳給a 17 a=`ls -l` # 把ls -l 的結(jié)果給a 或者直接 echo "$(ls -l)" 也可以取出目錄 3. 在read 命令狀態(tài)中 這個方法可以接受鍵盤輸入到a中。 4. 在一個雙引號中直接使用變量名,一般都是沒有問題的.它阻止了所有在引號中的特殊字符的 5.賦值的方法 -------------------------------------------------------- a:C風(fēng)格的賦值 ------------------------------------------------ 37(( t = a<45?7:11 )) # C 風(fēng)格的3 元操作. --------------------------------------------------- 18 LIMIT=10 -------------------------------------------- b:let 4 a=2334 # 整型 -------------------------------------------------------------------- c:取變量 5 a=2334 6 a=$(($a+1)) 7 echo "$a" #a=2335 ------------------------------------------ |
|