Shell脚本until和select in循环语句应用

本文介绍了在CentOSLinuxrelease7.9.2009环境下,如何使用Shell脚本中的until和select循环语句。until循环在条件满足时结束,而select循环用于创建交互式菜单,用户可以通过输入编号选择选项。文中提供了两个示例脚本,一个展示until循环用于获取用户输入的城市名直至输入EOF,另一个展示了select循环实现城市选择菜单并执行相应操作。

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

记录:435

场景:Shell脚本until和select in循环语句应用。

版本:CentOS Linux release 7.9.2009。

1.until和select in循环语句格式

1.1until循环语句格式

格式:

until condition
do
    command
done

解析:符合until的条件时,循环才会跳出。

1.2select in循环语句格式

格式:

select item in item1 item2 ... itemN
do
    command
done

解析:使用select in时,需要使用break跳出循环,否则无限循环。

select in循环用来增强交互性,它可以显示出带编号的菜单,用户输入不同的编号就可以选择不同的菜单,并执行不同的功能。比较适合命令行终端(Terminal)交互场景。

2.使用until循环语句

2.1脚本

脚本名称:b2023052821.sh

脚本内容:

#!/bin/bash

echo '请输入你喜欢的城市名称:'
echo '需要结束时,输入EOF.'
city_name=''
until [[ ${city_name} = "EOF" ]]
do 
   read city_name
   if [[ ${city_name} = "EOF" ]];then
     echo "你已输入: ${city_name},结束操作."
   else
     echo "你喜欢的城市: ${city_name}"
     echo '请输入其它你喜欢的城市名称:'
   fi
done

2.2执行与输出

执行命令:bash b2023052821.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052821.sh 
请输入你喜欢的城市名称:
需要结束时,输入EOF.
苏州
你喜欢的城市: 苏州
请输入其它你喜欢的城市名称:
杭州
你喜欢的城市: 杭州
请输入其它你喜欢的城市名称:
EOF
你已输入: EOF,结束操作.

3.使用select in循环语句

3.1脚本

脚本名称:b2023052822.sh

脚本内容:

#!/bin/bash

echo "请按照编号选择你喜欢的城市名称."
select item in "上海" "苏州" "杭州" "宁波"
do 
   if [[ ${item} = "" ]];then
     echo "请选择正确编号."
   else
     echo "你选择城市: ${item}."
     break
   fi
done
echo "你喜欢的城市是: ${item}."
echo "系统将为你设置你偏好内容."

3.2执行与输出

执行命令:bash b2023052822.sh

解析:#? 提示符提示你输入序号。使用Ctrl+D跳出循环。

执行结果:

[root@hadoop211 tutorial]# bash b2023052822.sh 
请按照编号选择你喜欢的城市名称.
1) 上海
2) 苏州
3) 杭州
4) 宁波
#? 3
你选择城市: 杭州.
你喜欢的城市是: 杭州.
系统将为你设置你偏好内容.

4.使用until循环语句

4.1脚本

#!/bin/bash

select item in "上海" "苏州" "杭州" "宁波"
do 
    case $item in 
    "上海")
       echo "${item}是一个国际大都市."
       break
       ;;
    "苏州")
       echo "${item}是一个园林城市."
       break
       ;;
    "杭州")
       echo "${item}是一个互联网城市."
       break
       ;;
    "宁波")
       echo "${item}是一个港口城市."
       break
       ;;
     *)
       echo "你选择的编号,暂时不支持."
       ;;
    esac
done

4.2执行与输出

执行命令:bash b2023052823.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052823.sh 
1) 上海
2) 苏州
3) 杭州
4) 宁波
#? 5
你选择的编号,暂时不支持.
#? 3
杭州是一个互联网城市.

以上,感谢。

2023年5月28日

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值