32 流程控制
来源:互联网 发布:java 调用打印机 编辑:程序博客网 时间:2024/06/04 20:10
1、单分支条件语句
if [ 判断语句 ];then
程序
fi
或者
if [条件判断]
then
程序
fi
例子1:如果根分区超过80%,发警告:
#!/bin/bash
rate=$(df -h | grep "/dev/sda5" | awk '{print $5}' | cut -d % -f 1)
if [ $rate -gt 80 ];then
echo 'waring'
fi
例子2:备份mysql
#!/bin/bash
#同步网上亚洲服务器时间
ntpdate asia.pool.ntp.org &> /dev/null
#格式化时间,年月日,不显示时分秒
date=$(date +%y%m%d)
#统计mysql数据库大小,并把大小赋予size变量,假设备份rpm包的mysl,实际一般都是源码包不用rpm包
size=$(du -sh /var/lib/mysql)
if [ -d /tmp/dbbak ]
then
echo "Date : $date" > /tmp/dbbak/dbinfo.txt
echo "Data size : $size " >> /tmp/dbbak/dbinfo.txt
cd /tmp/dbbak
tar -zcf mysql-lib-$date.tar.gz /var/lib/mysql dbinfo.txt &> /dev/null
rm -rf /tmp/dbbak/dbinfo.txt
else
mkdir /tmp/dbbak
echo "Date: $date" > /tmp/dbbak/dbinfo.txt
echo "Data size : $size " >> /tmp/dbbak/dbinfo.txt
cd /tmp/dbbak
tar -zcf mysql-lib-$date.tar.gz /var/lib/mysql dbinfo.txt &> /dev/null
rm -rf /tmp/dbbak/dbinfo.txt
2、多分支条件语句
if [ 判断语句 ]
then
程序
elif [ 判断语句 ]
then
程序
.....
else
程序
fi
3、switch....case
例子:
#!/bin/bashread -p 'plase input:' -t 30 cho
case "$cho" in
"yes")
echo "yes"
;;
'no')
echo 'no'
;;
*)
echo 'default'
;;
esac
【注】:每一个程序块(echo 这段后面的“ ;; ”一定不要忘记)
4、for循环
4.1 for方法一
for 变量 in 值1,值2,值3......
do
程序
done
例子1:
#!/bin/bash
for i in 1,2,3,4
do
echo $i
done //1,2,3,4
例子2:
cd /root/sh
ls *.sh >ls.log
arr=$(cat ls.log)
for i in $arr
do
echo $i
done
4.2 for方法二
for((初始值;循环条件;变量变化))
do
程序
done
例子1:
#!/bin/bash
n=0;
for((i=1;i<=100;i++))
do
n=$(($n+$i))
done
echo $n //5050
例子2:待完成,自己写一个批量添加指定数量的用户、密码
5、while与until循环
5.1 :条件判断成立一支循环
while [ 条件判断 ]
do
程序
done
例子1:
#!/bin/bash
n=0;
i=1;
while [ $i -le 100 ]
do
n=$(( $n + $i ))
i=$(( $i + 1 ))
done
echo $n //5050
5.2 until条件不成立一直循环,与while相反
until [ 条件判断 ]
do
程序
done
例子1:
#!/bin/bash
n=0;
i=1;
until [ $i -gt 100 ]
do
n=$(( $n + $i ))
i=$(( $i + 1 ))
done
echo $n //5050
- 32 流程控制
- 控制流程
- 控制流程
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 流程控制
- 《流程控制》
- 合并两个已排序的链表
- File size exceeds configured limit (2560000), code insight features not available
- 设计模式 之 准备开始之前
- 一个农村大男孩的IT梦
- C++模板详解
- 32 流程控制
- 浅谈PHP值传递与值引用
- SAPテーブル一覧
- 在线培训-虚拟演播室嵌入网页直播
- 2017 年 PHP 程序员未来路在何方
- Ubuntu16.04下安装编译Caffe
- 银行电商平台技术解决方案
- JavaScript开发的45个经典技巧
- HDU 4549 M斐波那契数列(费马小定理,矩阵快速幂,快速幂)