shell中的select in语句

1. select in 语句的用法

select in循环用来增强交互性,它可以显示出带编号的菜单,用户输入不同的编号就可以选择不同的菜单,并执行不同的功能。

select in 是shell独有的一种循环,非常适合终端(Terminal)这样的交互场景。其他语言是没有的。

格式:

select variable in value_list
do
	statements
done

variable表示变量,value_list表示取值列表

注意:

  • 1.#?用来提示用户输入菜单编号;^D表示按下Ctrl+D组合键,它的作用是结束select in循环
  • 2.运行到select语句后,取值列表 value_list 中的内容会以菜单的形式显示出来,用户输入菜单编号,就表示选中了某个值,这个值就会赋给变量 variable,然后再执行循环体中的 statements
  • 3.每次循环时,selevt都会要求用户输入菜单编号,并使用环境变量PS3的值作为提示符,PS3的默认值为#?,修改PS3的值就可以修改提示符
  • 4.如果用户输入的菜单编号不在范围之内,那么就会给variable赋一个空值;如果用户输入一个空值,会重新显示一遍菜单

例:

#!/bin/bash
echo "What is your favourite OS ?"
select name in "Linux" "Windows" "Mac OS" "UNINX" "Android"
do
	echo $name
done
echo "You have selected $name"

在这里插入图片描述

2. select in 通常和 case in 搭配使用

#!/bin/bash
# select in 通常和 case in 搭配使用

echo "What is your favourite OS ?"
select name in "Linux" "Windows" "Mac OS" "UNIX" "Android"
do	
	case $name in
		"Linux")
			echo "Linux是一个类UNIX操作系统,它开源免费,运行在各种服务器设备和嵌入式设备。"
			break
			;;
		"Windows")
			echo "Windows是微软开发的个人电脑操作系统,它是闭源收费的"
			break
			;;
		"Mac OS")
			echo "Mac OS是苹果公司开发的一款图形界面操作系统"
			break
			;;
		"UNIX")
			echo "UNIXs是操作系统的开山鼻祖,现在只应用在特殊场合"
			break
			;;
		"Android")
			echo "Andriod是有Google开发的手机操作系统"
			break
			;;
		*)
			echo "没有这个选项!"
			break
	esac
done

在这里插入图片描述

发布了145 篇原创文章 · 获赞 17 · 访问量 8675

猜你喜欢

转载自blog.csdn.net/weixin_45775963/article/details/104346691