文章目录
while循环与until循环介绍
#while循环工作流程
1、先判断循环条件是否成立,成立表示exprsiion的退出状态为0,则执行循环体
2、注意:为了避免死循环,必须保证在循环体中包含循环出口条件,即存在exprssion的退出状态为非0的情况
#until循环(与while循环相似)
1、当exprssion的退出状态不为0是,执行循环体
#写法示例
while exprsiion #until exprssion
do
command
done
while循环可分为四类
计数器控制的while循环
结束标志控制的while循环
标志控制的while循环
命令行控制的while循环
计数器控制的while循环
counter=1
while exprssion
do
command
let "command"
....
done
例子:计算1到100内所有奇数的和
i=1
sum=0
while (( i<100 ))
do
let "sum+=i"
let "i+=2"
done
echo "$sum"
结束标志控制的while循环
(结束是让exprssion的退出状态非0,用于用户不知道结束标志时)
read variable
while [[ "$variable" != sentinel ]]
do
command
read variable
done
例子,猜数字游戏
echo "这是一个猜数字的游戏"
echo "请输入一个数字,区间为1-10"
read suzi
while [[ "$suzi" != 5 ]]
do
if [ "$suzi" -gt 5 ];then
echo "您输入的数字略大哟"
echo -e "\t请重新输入猜测数字"
read suzi
else
echo "您输入的数字略小哟"
echo -e "\t请重新输入猜测数字"
read suzi
fi
done
echo "恭喜您,猜对啦,正确答案是5"
标志控制的while循环
(本质根结束标志控制的while循环差不多,只是这里用户知道结束的标志)
signal=0
while (( signal != 1 ))
do
if exprssion
then
signal=1
fi
done
例子,同样也是猜数字游戏
echo "这是一个猜数字的游戏"
echo "请输入一个数字,区间为1-10"
read num
signal=0
while [[ "$signal" != 1 ]]
do
if [ "$num" -ne 5 ];then
if [ "$num" -lt 5 ];then
echo "对不起,您输入的数字略小哟"
echo -e "\t请重新输入猜测数字"
read num
else
echo "对不起,您输入的数字略大哟"
echo -e "\t请重新输入猜测数字"
read num
fi
else
signal=1
echo "恭喜您,猜对啦,正确答案是5"
fi
done
命令行控制的while循环
有时需要命令行来指定输出参数和参数个数,这时用其他三种形式的while循环都无法实现,所以要使用命令行控制的while循环,该模式下,while循环通常与shift结合起来使用,其中,shift命令使位置变量下移一位(即$2代替$1,$3代替$2),并且使$#变量递减,当最后一个参数也显示给用户后,$#就变成0,同时$*也等于空。
while [[ "$*" != "" ]]
do
echo "$1"
shift
done
#例子
echo "您输入了 $# 个参数"
echo "当前输入的内容是"
while [[ "$*" != "" ]]
do
echo "$1"
shift
done
cat /root/ip.txt | while read line
do
for A in {0..255}
do
echo "Host = $line.$A, netmask=255.255.255.0, ctrl=00000000, gateway_ip=$line.1 " >> ok.txt
done
done
无限循环|死循环
#第一种
while :
do
command
done
#第二种
while true
do
command
done
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论