shell script
第一行 #!bin/bash 聲明這個 script 使用的 shell 名稱
其他行的 # 表示註釋
數值運算
declare -i aa
aa=5+6
let bb=1+8
cc=$((5+8)) echo $cc
返回值
命令如果執行成功,返回值爲0,如果執行失敗,返回非0值
echo $? 查看返回值
數值的比較
數字比較 -eq -gt -ge -lt -le
字符比較 == > >= < <=
比較方法 test 或[ ]
aa=3 bb=4 test $aa -eq $bb 或 [ $aa -eq $bb ] echo $?
[ $aa -eq $bb ] && echo OK
判斷
[ -f /etc/passwd ] 判斷文件是否存在 [ -x /etc/passwd ] 判斷文件是否可執行
[ -r /etc/passwd ] 判斷文件是否可讀 [ -w /etc/passwd ] 判斷文件是否可寫
if判斷
if [ 條件判斷式一 ]; then
if [ 條件判斷式二 ]; then
else
fi
在腳本中加入set -x 命令進行排錯
case判斷
case $變量名稱 in
"第一個變量內容")
程序段
;;
"第二個變量內容")
程序段
;;
*)
exit 1
;;
esac
select xx in 'ls -l' pwd date
do
$xx
done
function功能
#不寫function也可以
function xx () {
echo myfunction
}
xx
循環(loop)
sum=0
while [ "$sum" -lt 10 ]
do
let sum+=1
echo $sum
done
xx=0
until [ "$xx" -gt 24 ]
do
case "$xx" in
[0-9]|1[01])
echo "morning"
;;
12)
echo "lunch"
;;
1[3-7])
echo "afternoon"
*)
echo "everning"
esac
let xx+=1
done
for var in con1 con2 con3
do
程序段
done
#第3次循環時var值爲con3