Linux-shell篇之while用法

本文深入解析Bash脚本中的while循环用法,包括基本语法、死循环、文件读取及结合条件语句的高级应用。通过实例演示如何进行数值累加、字符串处理及文件操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

while循环:适用于循环次数未知的场景,要有退出条件
语法:
while CONDITION; do
statement

done

例子:计算100以内所有正整数的和
#!/bin/bash
#
declare -i I=1
declare -i SUM=0

while [\ $I -le 100 ]; do
let SUM+=$i
let I++
done

echo $SUM

例子:输入英文字符串,把小写字符转换成大写
#!/bin/bash
#
read -p “Input something:” STRING

while [$STRING != ‘quit’]; do
echo $STRING | tr ‘a-z’ ‘A-Z’
read -p "Input something: " STRING
done

break:提前退出循环
continue:提前结束本轮循环,而进入下一轮循环

例子:1到1000累加,综合超过10000的时候退出循环
#!/bin/bash
#
declare -i SUM=0

for I in {1…1000}; do
let SUM+$I
if [ $SUM -gt 10000 ]; then
break
fi
done
echo $I
echo $SUM

while特殊用法一:死循环写法
while :; do

done

例子:死循环读取路径,遇到“quit”的时候退出死循环
#!/bin/bash
#
while :; do
read -p “File path:” FILEPATH
[\ $FILEPATH == ‘quit’ ] && break
if [ -e $FILEPATH ]; then
echo “$FILEPATH exists.”
else
echo “No $FILEPATH.”
fi
done

echo “Quit.”

while特殊用法二:读取文件
while read LINE; do

done < /PATH/TO/SOMEFILE

例子:循环读取文件/etc/passw内容,如果第7列为/bin/bash,那么输出第1列数据
#!/bin/bash
#
FILE=/etc/passwd
let I=0

while read LINE; do
[ `echo $LINE | awk -F : ‘{ print $3 }’`-le 505 ] && contine
[ `echo $LINE | awk -F : ‘{ print $7 }’` == ‘/bin/bash’] && echo $LINE | awk -F : ‘{print $1 }’
[ $I -gt 6 ] && break
done < $FILE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值