if条件判断
语法: if [条件判断式]
then
程序
fi
if [条件判断式]
then
程序
else
then
程序
fi
查看根分区使用率
#!/bin/bash
a=$( dh -h | grep /dev/sda3 | awk '{print $5}' | cut -d "%" -f 1)
if [ "$a" -ge 80 ]
then
echo "内存超80%了"
fi
#!/bin/bash
ntpdate asia.pool.ntp.org &> /dev/null
#同步系统时间
date=$(date +%y%m%d)
#把当前时间以一种格式赋予date
size=$(du -sh /var/lib/mysql)
#统计mysql数据库大小,并赋予size变量
if [ -d /tmp/dbbak ]
#判断备份目录是否存在,是否是目录
then
echo "Date :$date!" >/tmp/dbbak/dbinfo.txt
#把当前日期写入临时文件中
echo "Date size : $size " >>/tmp/dbbak/dbinfo.txt
#把数据库大小写入临时文件中
cd /tmp/bdbak
#进入备份目录
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 "Date size : $size " >>/tmp/dbbak/dbinfo.txt
#把数据库大小写入临时文件中
cd /tmp/bdbak
#进入备份目录
tar -zcf mysql-lib-$date.tar.gz /var/lib/mysql dbinfo.txt &? /dev/null
rm -rf /tmp/dbbak/dbinfo.txt
#删除临时文件
for循环
语法: for $变量 in 值1 值2 值3 ....
do
程序 #将值1,值2,值3依次赋予$变量
done
for (( 初始值; 控制条件;变量变化 ))
do
程序
done
#!/bin/bash
cd /boot/sh/tar压缩包目录
ls *.tar.gz >tar.log #将包文件名打印到tar.log
ls *.tgz >> tar.log &>/dev/null #将包tgz名称也加入tar.log,
a=$(cat tar.log|wc -l) #通过wc命令统计包个数赋予变量a
for ((i=1;i<=$a;i++))
do
tarname= cat tar.log|awk 'NR=="$1" {print $1}'
tar -zcf $tarname -C /root/sh/tar
done
rm -rf tar.log #删除tar.log临时文件
#!/bin/bash
cd /boot/sh/tar压缩包目录
ls *.tar.gz >tar.log
ls *.tgz >> tar.log &>/dev/null
for in $(cat tar.log)
do
tar -zcf $tarname -C /root/sh/tar
done
rm -rf tar.log #删除tar.log临时文件
#!/bin/bash
read -p "请输入要设置初始用户的名字" name
read -p "请输入要设置初始用户的密码" pass
read -p "请输入要建立多少个这样的用户" num
if [ -n "$name" -a -n "$pass" -n "$num" ]
then
y=$(echo $num|sed 's/[0-9]//g')
if [ !-n $y ]
then
for((i=1;1<=$num;i++))
do
/usr/sbin/useradd $name$i &>/var/null
echo $pass| /usr/bin/passwd --stdin $name$i &> /var/null
done
fi
fi
for i in 1 2 3 4
do
echo $I
done
s=0
for (( i=0; i<=100; i++ ))
do
s=$((s+$i))
done
echo $s
case判断
语法:case $变量名 in
"值1")
程序1
;;
"值2")
程序2
;;
*) #代表若不是值1或值2,则执行程序3
程序3
;;
esac
#!/bin/bash
read -p "请输入成绩:" score
case "$score" in
100)
echo "满分"
;;
9[0-9])
echo "优秀"
;;
[78][0-9])
echo "良好"
;;
6[0-9])
echo"及格"
;;
*)
echo "不及格"
;;
esca
while循环
语法: while [条件判断式]
do
程序
done
until循环
语法: until [条件判断式]
do
程序
done
注:until循环与while循环相反,until循环只要条件不成立则继续执行程序
break语句,continue语句,exit语句
break 是跳出整个循环,在循环结束后下移至代码。continue在循环中不执行continue下面的代码,转而进入下一轮循环
exit:脚本中碰到exit,脚本执行就结束了;命令中是退出当前shell