Bash循环结构

本文详细介绍了Bash脚本中的循环结构,包括for循环、while循环、until循环、case结构和select结构,并提供了示例代码及运行结果。通过本文,读者可以了解不同循环结构的特点及其应用场景。

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

<!-- gte="" mso="" 9=""><![endif]--><!-- gte="" mso="" 9=""><![endif]--><!-- gte="" mso="" 10=""><style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} table.MsoTableGrid {mso-style-name:网格型; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; border:solid windowtext 1.0pt; mso-border-alt:solid windowtext .5pt; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-border-insideh:.5pt solid windowtext; mso-border-insidev:.5pt solid windowtext; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style><![endif]--><!--![endif]----><!--!----><!--![endif]----><!--!----><!--![endif]----><!--!---->![endif]-->!-->![endif]-->!-->![endif]-->!-->

Bash循环结构

一、for结构

For arg in list

Do

done

有限循环,次数取决于list元素的个数,内容取决于list元素的值

二、while结构

While […]

Do

Done

条件循环,当条件为真时,执行一次循环

三、until结构

Until […]

Do

done

条件循环,当条件为假时,才执行一次循环

四、case结构

Case arg in

… ) … ;;

… ) … ;;

Esac

条件分支,注意每个分支中,条件和结果用”)”分开,结束用两个封号”;;”

五、select结构

六、代码

#! /bin/bash

for item in "a" "b" "c" "d" "e" "f"

do

echo "$item"

done

#######for result

#a

#b

#c

#d

#e

#f

a="abc def ghi jkl mno pqr"

for argu in `echo $a`

do

echo "$argu"

done

######for result

#abc

#def

#ghi

#jkl

#mno

#pqr

b=10

c=20

while [ "$b" -lt "$c" ]

do

echo "b=$b"

let "b=$b+1"

done

#######while result

#b=10

#b=11

#b=12

#b=13

#b=14

#b=15

#b=16

#b=17

#b=18

#b=19

b=10

c=20

while [ "$b" -lt "$c" ]

do

let "b=$b+1"

if [ "$b" -eq "13" ]

then

continue

fi

echo "b=$b"

done

#######while result

#b=11

#b=12

#b=14

#b=15

#b=16

#b=17

#b=18

#b=19

#b=20

while [ "$var" != "end" ]

do

echo "While input variable"

read var

done

until [ "$var" != "end" ]

do

echo "Until input variable"

read var

done

echo "Hit a key, then hit return"

read var

case "$var" in

"1" ) echo "var is 1" ;;

"2" ) echo "var is 2" ;;

* ) echo "var is other" ;;

esac

select var in "123" "456" "789"

do

echo "ok is $var"

break

done

七、关键点

1for中的list可以用命令替换

2read输入是var,而不是$var

3select很直观,直接将list中的所有输出菜单样,但有待进一步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值