shell编程之选择语句

case选择语句

case语法规则

case $变量名 in
“值1”)
语句1
;;
“值2”)
语句2
;;

*)
语句n
;;
esac

case选择语句符合单条件多分支的情况。

实例:根据用户的输入来输出对应的内容

#!/bin/bash

read -p "Please input your choice Y/N:" -t 5 choice
case $choice in
	"Y")
	echo "your choice is yes!"
	;;
	"N")
	echo "your choice is no!"
	;;
	*)
	echo "your choice is error!"
	;;
esac

⚠️
1)case语句会根据变量的值来选择对应的语句执行,若所有的值都不符合,则执行*)对应的语句(*代表的是其他值);
2)case选择语句是以case开头,以esac结尾;
3)在每个分支之后都要以;;(双分号)结尾,代表该程序段结束。

select选择语句

select语句一般用于选择菜单的创建,可以配合PS3来做菜单的打印输出信息。
同时可以配合case选择语句来执行对应的内容。

select语法规则

PS3=“Menu:”
select i in 菜单列表
#显示环境变量PS3的值
do
语句1
done
⚠️
1)PS3中存放的是引导用户输入的提示信息;
2)菜单列表之间用空格间隔开;
3)在显示列表时,列表中的每一个菜单项之前添加从1开始递增的序号;
4)用户每选择一个菜单项之后都会重新进入新的菜单选择循环;
5)select是一个无限循环,所以需要提供出口quit

实例:选择对应的安装项

#!/bin/bash
#case select test
PS3="select install menu:"
echo $PS3

select i in "apache" "mysql" "php" "quit"
do
	case $i in
		apache)
		echo "wait install httpd server..."
		;;
		mysql)
		echo "wait install mysql server..."
		;;
		php)
		echo "wait install php server..."
		;;
		quit)
		break
		;;
		*)
		echo "usage: {$0 apache|mysql|php|help}"
		;;
	esac
done

脚本输出结果:
在这里插入图片描述
当使用select语句来选择对应项时,可以通过数值1,2,3,4…来选择对应的项。


版权声明:本文为BANANAML原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。