for循环
语法1:
for i in 集合
do
程序
done
语法2:
for ((i=0;i<=100;i++))
do
程序
done
eg:批量压缩文件
#!/bin/bash
#批量压缩文件
cd /root/
ls *.tar.gz > ls.log
for i in $(cat ls.log)
do
tar -zxf $i &> /dev/null #&> /dev/null 把打印的信息输出都/dev/null文件中,这个文件相当一个回收站
done
eg :求1到100的和
#!/bin/bash
#求1到100的和
s=0
for ((i=0;i<=100;i++))
do
s=$(($s+$i))
done
echo $s
eg:批量添加指定数量的用户
#!/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 password 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++))
do
/usr/sbin/useradd $name$i &> /dev/null
echo $pass | /usr/bin/passwd --stdin $name$i &> /dev/null #给用户名赋初始值 ,用stdin接收$pass值
done
fi
while循环 :while循环是不定循环,也称条件循环,只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。这就和for的固定循环不太一样
语法:
while [ 条件判断式1 ]
do
程序
done
eg:
#!/bin/bash
#从1加到100
i=1
s=0
while [ $i -le 100]
#如果变量i的值小于等于100,则执行循环
do
s=$(( $s+$i ))
i=$(( $i+1 ))
done
echo "The sum is :$s"
until循环
until循环,和while循环相反,until循环时只要条件判断式不成立则进行循环,并执行循坏程序。一旦循环条件成立,则终止循环。
until [ 条件判断式 ]
do
程序
done