1. for循环
sum=0 for ((i=1;i<=10;i++)) do sum=$[$sum+$i] done echo $sum
<a name="cuTGC"></a># 2. while循环<a name="n9XLa"></a>## 100以内猜数字```bash#bin/bashNUM=$[$RANDOM%100]#echo $NUMGS=101#while truewhile [ $GS -ne $NUM]doread -p "输入你猜的数字" GSif [ $GS -lt $NUM ];thenecho "你猜的数字太小了"elif [ $GS -gt $NUM ];thenecho "你猜的数字太大了"elseecho "恭喜你,猜对了数字:$NUM"exit 6fidone
while循环读取文件的3个方法
while read USER do useradd $USER PASSWORD=$(openssl rand -base64 8 | cut -c1-6) echo $PASSWORD | password —stdin $USER >& /dev/null if [ $? -eq 0 ];then echo create $USER sucessfully fi echo username:$USER password:$PASSWORD >> /root/zcw/userinfo done < /root/zcw/userlist
```bash# cat iplist192.168.147.101 5225192.168.147.102 2234192.168.147.103 4922# cat while-read.sh#!/bin/shwhile read linedoIP=$(echo $line |awk '{print $1}')PORT=$(echo $line |awk '{print $2}')echo "IP: $IP, PORT: $PORT"done <iplist[root@zhouchunwei-6-60 zcw]# ./while-read.shIP: 192.168.147.101, PORT: 5225IP: 192.168.147.102, PORT: 2234IP: 192.168.147.103, PORT: 4922
采用exc读取文件,然后进入while循环处理
exec < /root/zcw/userlist while read USER do useradd $USER PASSWORD=$(openssl rand -base64 8 | cut -c1-6) echo $PASSWORD | password --stdin $USER >& /dev/null if [ $? -eq 0 ];then echo create $USER sucessfully fi echo username:$USER password:$PASSWORD >> /root/zcw/userinfo done使用cat读文件,然后通过管道进入while循环处理
cat /root/zcw/userlist | while read USER do useradd $USER PASSWORD=$(openssl rand -base64 8 | cut -c1-6) echo $PASSWORD | password --stdin $USER >& /dev/null if [ $? -eq 0 ];then echo create $USER sucessfully fi echo username:$USER password:$PASSWORD >> /root/zcw/userinfo done3. until循环
100以内猜数字
```bash
/bin/bash
NUM=$[$RANDOM%100] GS=101 echo “显示结果:$NUM”
until [ $GS -eq $NUM ] do read -p “Input your number: “ GS if [ $GS -lt $NUM ];then echo “你猜的数字太小了” elif [ $GS -gt $NUM ];then echo “你猜的数字太大了” else echo “恭喜你,猜对了数字:$NUM” exit 6 fi done
```bash
#/bin/bash
NUM=$[$RANDOM%100]
GS=101
echo "显示结果:$NUM"
until [ $GS -eq $NUM ]
do
read -p "Input your number: " GS
if [ $GS -lt $NUM ];then
echo "你猜的数字太小了"
elif [ $GS -gt $NUM ];then
echo "你猜的数字太大了"
elif [ $GS -eq $NUM ];then
echo "恭喜你,猜对了数字:$NUM"
exit 6
else
echo "Input ERROR"
fi
done
4. continue && break
continue
打印乘法表
结果只打印5列
for ((x=1;x<10;x++))
do
for ((y=1;y<=x;y++))
do
if [ $y -eq 5 ];then
continue
fi
echo -ne "$y * $x = $[$x*$y]\t"
done
echo ""
done
break
跳出整个循环
for ((x=1;x<10;x++))
do
for ((y=1;y<=x;y++))
do
if [ $y -gt 5 ];then
break
fi
echo -ne "$x * $y = $[$x*$y]\t"
done
echo ""
done
