shell脚本流程控制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本流程控制相关的知识,希望对你有一定的参考价值。
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
本文出自 “勿忘初心” 博客,转载请与作者联系!
以上是关于shell脚本流程控制的主要内容,如果未能解决你的问题,请参考以下文章