4.1. 3 Shell流程控制语句
If条件判断语句
If(表达式)#if ( Variable in Array )
语句1
else
语句2
fi
案例一,测试目录是否存在,不存在则新建(注意,中括号之间必须要空格) #!/bin/sh #judge direxist if [ ! -d /data/20140515 ];then mkdir -p/data/20140515 else echo “This DIR isexist,Please exit …..” fi
逻辑运算符解析: -f判断文件是否存在eg:if [ -f filename ] -d判断目录是否存在eg:if [ -d dir ] -eq等于应用于:整型比较 -ne不等于应用于:整型比较 -lt小于应用于:整型比较 -gt大于应用于:整型比较 -le小于或等于应用于:整型比较 -ge大于或等于应用于:整型比较 -a双方都成立(and)逻辑表达式–a 逻辑表达式 -o单方成立(or)逻辑表达式–o 逻辑表达式 -z 空字符串
案例三,多个条件测试判断 #!/bin/sh scores=80;
if [[ $scores -gt 85]]; then
echo"very good!"; elif [[ $scores -gt 75]]; then
echo"good!"; elif [[ $scores -gt 60 ]]; then
echo"pass!"; else echo "no pass!"; fi;
循环语句for
For 变量in 字符串
do
语句1
done
案例一,打印seq多个数
#!/bin/sh for i in `seq 15` do echo “NUMis $i” done 案例二,找到相关log,然后批量打包
#!/bin/sh for i in `find /var/log -name “*.log”` do tar –czf 2014log.tgz $i done 循环语句while while 条件语句
do 语句1 done
案例一,while条件判断数字 #!/bin/sh i=1; while [[ $i -lt 10 ]];do echo $i; ((i++)); done; 案例二,while逐行读取某个文件
#!/bin/sh while read line do echo $line; done< /etc/hosts
Case选择语句
case $arg in
pattern1)
语句1
;;
pattern2)
语句2
;;
*)
语句3
;;
esac
案例一,创建选择参数脚本 #!/bin/sh case $1 in monitor_log) monitor_log ;; archive_log) archive_log ;; * ) echo "Usage:{$0 monitor_log | archive_log |help}" ;; esac
|