Bash Shell Script Notes
(Keywords)保留字:
! esac select }
case fi then [[
do for until ]]
done function while
elif if time
else in {
預設變數與環境變數:
$? 上個指令執行的回傳值 (0 = 成功執行)
$IFS Shell Script 參數間格字元 (空白、Tab 等)
$0 Shell Script File Name
$1, $2 etc... First Parameter, Second Parameter etc...
$# Number of Parameters
$$ PID of the Shell Script
自定變數:
定義: foo=123 或 foo="Hello, World"
使用: $foo 或 ${foo}
移除: foo= 或 unset foo
注意: 定義時變數名稱與 = 之間不可以有空白,如 foo = 123 是錯誤的。
test 與 [ 條件判斷:
通常條件判斷會用 test,test 可用來做很多種比對,像比較兩個整數、判斷檔案存在與否等等。
語法:
test EXPRESSION
test
[ EXPRESSION ]
[ ]
[ OPTION
實際上 [ 通常是 test 的連結(Fedora7 是獨立的),可以用 ls 來觀察如:
ls -l /usr/bin/[ /usr/bin/test
通常我們還會用 ] 來對應前面的 [。
test 常用參數:
-e FILE 檔案存在
-f FILE 檔案存在並且一般檔案 (較常用)
-d FILE 目錄存在
-h FILE 檔案是否為 symbol link (同 -L)
-x FILE 檔案是否可執行
-s FILE 檔案大小不是零
-n STRING 字串非零 (not zero)
-z STRING 字串為零 (zero string)
INTEGER1 -eq INTEGER2 INTEGER1 等於 INTEGER2
INTEGER1 -ge INTEGER2 INTEGER1 大於等於 INTEGER2
INTEGER1 -gt INTEGER2 INTEGER1 大於 INTEGER2
INTEGER1 -le INTEGER2 INTEGER1 小於等於 INTEGER2
INTEGER1 -lt INTEGER2 INTEGER1 小於 INTEGER2
INTEGER1 -ne INTEGER2 INTEGER1 不等於 INTEGER2
其他的可看 man test。
if:
然後可以搭配 if 來使用,if 語法如下:
if ...condition...; then
...statements...
else
...statements...
elif
...statements...
fi
範例:
XFILE=/bin/ls
if [ -x ${XFILE} ]; then
$XFILE
else
echo "not executable file"
fi
switch/case:
case ...variable... in
... pattern | patterns ... )
...statements...
;;
esac
for 迴圈:
for ...variable... in ...variables...; do
...statements...
done
while 迴圈:
while ...condition...; do
...statements...
done
until ...condition...; do
...statements...
done
其他迴圈控制:
break
continue
return
這三個用法與 C 基本上都一樣。
return 後未加數值,會回應最後一個取得的回應值。
星期三, 7月 08, 2009
Bash Shell Script Notes
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言