Shell脚本循环
循环:循环是一种重复执行一段代码的结构。只要满足循环的条件,会一直执行这个代码。
组成部分:循环条件、循环体
循环条件:在一定范围之内,按照指定的次数来执行循环。 循环体:在指定的次数内,执行的命令序列。只要条件满足,循环体会被一直执行。
循环和遍历: 遍历:就是对数据结构中每个元素进行一次访问的过程,通常和循环一起使用。 访问的目的就是为了执行特定的操作。 循环属于操作,遍历就是输出
循环的作用:
1、重复执行代码,尤其是统一的,相同的,批量的操作。
2、提供代码的重复利用率
3、提高人工效率 ,减少人工干预,提高效率。
4、简化程序逻辑,降低代码的出错可能性
for循环: 使用场景:用于已知循环次数的场景。
while循环:和for循环可以互相替换,常用于死循环
until循环:条件不满足执行,条件满足不执行。
for循环格式:
格式1: for 变量名称 ( 前面无$) in 范围 { } do 命令序列 done
#现在创建一个文件passwd.txt
#在这个文件中创建三行,xy101 xy102 xy103
#使用循环创建这个三个用户,统一设定密码为123456
for user in $(cat /opt/passwd.txt)
do
useradd $user
echo 123456 | passwd --stdin $user
done
格式2(类c语言格式):
for((表达式1;表达式2;表达式3))
do
命令序列
done
#累加求和?1-100一直相加,最后的结果是多少呢?用循环来实现?
sum=0
for ((i=1;i<=100;i++))
do
sum=$[ $sum+$i ]
done
echo $sum
#分别求出奇数和以及偶数和
for((i=1;i<=100;i++))
do
if [[ $i%2 -eq 0 ]]
then
sum=$(( $sum+$i ))
else
sum1=$(( $sum1+$i ))
fi
done
echo $sum
echo $sum1
#自定义输入一个数,然后求从1到该数字的累加和?不要超过100
read -p "输入一个不超过100的数:" num
sum=0
if [[ $num -eq $num ]] &> /dev/null
then
for((i=1;i<=$num;i++))
do
sum=$(( $sum+$i ))
done
echo $sum
else
echo 请输入整数
fi
格式3(死循环):
for ((;;))
do
命令序列
done
循环控制语句 continue break
break:在循环内部,执行到break命令时,会立即跳出当前循环,并终止
continue:把执行到continue时,跳出当前循环,但是如果循环条件满足,会执行后续的循环条件。
#猜数字,输入一个0-100的随机数,这个随机数由系统生成
#死循环,一直到用户猜中为止,才中了循环才会终止。
$RANDOM 0-32767
#循环控制语句 continue break
#猜大了,提示用户猜大了,猜小了,提示用户猜小了。猜对了,终止循环,并提示用户你猜对了!
a=$(($RANDOM%10+1))
for ((;;))
do
read -p "输入一个0到100的数:" num
count=$(( $count+1 ))
if [[ $num -eq $a ]]
then
echo "恭喜你猜中了"
echo "猜了$count次"
break
echo "猜了$count次"
elif [[ $num -lt $a ]]
then
echo "猜小了"
elif [[ $num -gt $a ]]
then
echo "猜大了"
fi
done
标签:脚本,do,shell,echo,break,循环,done,执行
From: https://blog.csdn.net/cycjok/article/details/139656593