单分支if条件语句
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
fi
注意点:
[root@localhost sh]# vim if1.sh

双分支if条件语句
if [ 条件判断式 ]
then
条件成立时,执行的程序
else
条件不成时,执行的另一个程序
fi

多分支case条件语句
case语句只能判断一种条件关系
格式
case $变量名
“值1”)
如果变量的值等于值1,则执行程序1
;;
“值2”)
如果变量的值等于值2,则执行程序2
;;
…省略其他分支
*)
如果变量的值都不是以上值,则执行此程序
;;
esac
运行一个列子
[root@tomcat ~]# vim case.sh
#!/bin/bash
echo 'you want to shanghai please input "1"'
echo 'you want to guangzhou please input "2"'
echo 'you want to chengdu please input "3"'
read -t 30 -p "please input your choose" cho
case "$cho" in
"1")
echo "shanghaidejipiao"
;;
"2")
echo "guangzhoudejiapiao"
;;
"3")
echo "chengdudejiapiao"
;;
*)
echo "error 1/2/3"
;;
esac
运行结果如下
[root@tomcat ~]# ./case.sh
you want to shanghai please input "1"
you want to guangzhou please input "2"
you want to chengdu please input "3"
please input your choose1
shanghaidejipiao
please input your choose2
guangzhoudejiapiao
please input your choose3
chengdudejiapiao
please input your choose7
error 1/2/3
for循环
语法一
for 变量in值1值2值3…
do
程序
done
[root@tomcat ~]# vim for1.sh
#!/bin/bash
for i in 1 2 3 4 5 6
do
echo $i
done
[root@tomcat ~]# chmod 755 for1.sh
[root@tomcat ~]# ./for1.sh
1
2
3
4
5
6
批量解压缩脚本
[root@tomcat ~]# vim for2.sh
#!/bin/bash
cd /root/tar.gz
ls *.tar.gz > ls.log
y=1
for i in $(cat ls.log)
do
echo $y
y=$(($y+1))
done
结果

语法二
for ((初始值;循环控制条件;变量变化))
do
程序
done
从1加到100
[root@tomcat ~]# vim for3.sh
#!/bin/bash
s=0
for (( i=1;i<=100;i=i+1 ))
do
s=$(($s+$i))
done
echo $s
[root@tomcat ~]# chmod 755 for3.sh
[root@tomcat ~]# ./ for3.sh
结果是
5050
批量添加用户
[root@tomcat ~]# vim for4.sh
#!/bin/bash
read -p "please input user name:" -t 30 name
read -p "please input the number of users:" -t 30 num
read -p "please input the passwd of users:" -t 30 pass
if [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass" ]
then
y=$(echo $num | sed 's/^[0-9]*$'//g)
if [ -z "$y" ]
then
for ((i=1;i<$num;i+1))
do
useradd $name$i &>/dev/null
echo $pass |passwd --stdin "$name$i" &>/dev/null
done
fi
fi
这里在操作时因为少写了一个fi找了好久才发现,所以要每写一个if就要紧跟一个fi才会减少出错的概率,少女心累。
[root@tomcat ~]# chmod 755 for4.sh
[root@tomcat ~]# ./for4.sh
please input user name:user1
please input the number of users:3
please input the passwd of users:123456
while循环与until循环
不定循环,也称条件循环。
格式:
while [ 条件判断式 ]
do
程序
done
举例:从1加到100
[root@tomcat ~]# vim for5.sh
#!/bin/bash
i=1
s=0
while [ "$i" -le 100 ]
do
s=$(($s+$i))
i=$(($i+1))
done
echo $s
结果是5050
until 循环,和 while 循环相反,until 循环时只要条件判断式不成立则进行循环,并执行循环
程序。一旦循环条件成立,则终止循环
格式:until [条件判断式]
do
程序
done
举例
i=1
s=0
while [ "$i" -gt 100 ]
do
s=$(($s+$i))
i=$(($i+1))
done
echo $s
结果是5050
1332





