循环(Shell基础教程9)
教程内容
for 循环
for 循环是 Shell 脚本中最常用的循环结构之一。
# 基本结构
for arg in [list]
do
command(s)...
done在每次循环迭代中,变量 arg 会依次获取列表中的每个值,随后执行相应的命令。
# 遍历数组成员
NAMES=(Joe Jenny Sara Tony)
for N in ${NAMES[@]} ; do
echo "My name is $N"
done
# 遍历命令输出结果
for f in $( ls prog.sh /etc/localtime ) ; do
echo "File is: $f"
donewhile 循环
while 循环在条件为真时重复执行命令。
# 基本结构
while [ condition ]
do
command(s)...
donewhile 结构会测试条件,如果结果为 true,则执行命令。只要条件保持为真,循环就会持续进行。
COUNT=4
while [ $COUNT -gt 0 ]; do
echo "Value of count is: $COUNT"
COUNT=$(($COUNT - 1))
doneuntil 循环
until 循环与 while 循环相反,它在条件为假时执行命令。
# 基本结构
until [ condition ]
do
command(s)...
doneuntil 结构会测试条件,如果结果为 false,则执行命令。只要条件保持为假,循环就会持续进行(与 while 结构逻辑相反)。
COUNT=1
until [ $COUNT -gt 5 ]; do
echo "Value of count is: $COUNT"
COUNT=$(($COUNT + 1))
donebreak 和 continue 语句
break 和 continue 可用于控制 for、while 和 until 循环的执行流程。
continue:跳过当前迭代的剩余部分,直接进入下一次循环。break:立即终止整个循环,执行循环之后的代码。
示例如下:
# 打印 0,1,2,3,4
COUNT=0
while [ $COUNT -ge 0 ]; do
echo "Value of COUNT is: $COUNT"
COUNT=$((COUNT+1))
if [ $COUNT -ge 5 ] ; then
break
fi
done
# 仅打印奇数 - 1,3,5,7,9
COUNT=0
while [ $COUNT -lt 10 ]; do
COUNT=$((COUNT+1))
# 检查 COUNT 是否为偶数
if [ $(($COUNT % 2)) = 0 ] ; then
continue
fi
echo $COUNT
done练习任务
在本练习中,您需要遍历数字列表,并按接收顺序打印出所有偶数。当遇到数字 237 时停止循环(不打印 237 及其之后的任何数字)。
参考代码
#!/bin/bash
NUMBERS=(951 402 984 651 360 69 408 319 601 485 980 507 725 547 544 615 83 165 141 501 263 617 865 575 219 390 237 412 566 826 248 866 950 626 949 687 217 815 67 104 58 512 24 892 894 767 553 81 379 843 831 445 742 717 958 609 842 451 688 753 854 685 93 857 440 380 126 721 328 753 470 743 527)
# 在此处编写您的代码预期输出
402
984
360
408
980
544
390参考答案
#!/bin/bash
NUMBERS=(951 402 984 651 360 69 408 319 601 485 980 507 725 547 544 615 83 165 141 501 263 617 865 575 219 390 237 412 566 826 248 866 950 626 949 687 217 815 67 104 58 512 24 892 894 767 553 81 379 843 831 445 742 717 958 609 842 451 688 753 854 685 93 857 440 380 126 721 328 753 470 743 527)
for gg in ${NUMBERS[@]}; do
if [ $gg == 237 ]; then
break
elif [ $(($gg % 2)) == 0 ]; then
echo $gg
fi
done系列教程导航
- Hello, World!(Shell 基础教程 1)
- 变量 (Shell 基础教程 2)
- 将参数传递给脚本 (Shell 基础教程 3)
- 数组 (Shell 基础教程 4)
- 数组比较 (Shell 基础教程 5)
- 基本运算符 (Shell 基础教程 6)
- 基本字符串操作 (Shell 基础教程 7)
- 逻辑表达式 (Shell 基础教程 8)
- 循环 (Shell 基础教程 9)
- shell 函数 (Shell 基础教程 10)
- 特殊变量 (Shell 基础教程 11)
- 字符串操作 (Shell 基础教程 12)
- 捕捉信号命令 (Shell 基础教程 13)
- 文件测试 (Shell 基础教程 14)
- 输入参数解析 (Shell 基础教程 15)
- 管道 (Shell 基础教程 16)
- 输入输出 (Shell 基础教程 17)
- 常用表达 (Shell 基础教程 18)
- 特殊命令 sed(Shell 基础教程 19)
版权声明:本文为原创文章,版权归 戴老师的博客 所有,转载请联系博主获得授权。
本文地址:https://1diff.fun/archives/xun-huan-shell-ji-chu-jiao-cheng-9.html
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。