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