【shell】select用法

       select可用于循坏,select与其他循环相似的是,依靠在代码块顶部或底部的条件判断来决定程序的分支。在多菜单显示、需要用户输入方面,select可以很方便地输出菜单,供用户选择使用。select语句一般配合case语句使用,其语法格式为:

select choice in menu_1,menu_2,menu_3...
do
    case "$choice" in
        menu_1)
            cmd
            ;;
        menu_2)
            cmd
            ;;
        ...
        menu_m)
            break
            ;;
        menu_n)
            exit
            ;;
    esac
done

使用示例:显示计算机系统相关信息

#! /bin/bash
select choice in disk_partition file_sys cpu_load mem_util quit
do 
	case "$choice" in
		disk_partition)
			fdisk -l
			;;
		file_sys)
			df -h
			;;
		cpu_load)
			uptime
			;;
		mem_util)
			free -m
			;;
		q)
			break
			;;
		*)
			echo "error"
			exit
			;;
	esac
done

执行结果:

       由上面运行结果可知:执行shell脚本后出现菜单选项,且只出现一次。那么如果需要一次查看的选项很多时,可能并不那么方便,这里结合while循坏,可以实现在每次输入都能显示菜单选项。编码如下:

#! /bin/bash
# PS3 = "Your choice is[5 for exit]:"
while true;do
	select choice in disk_partition file_sys cpu_load mem_util quit
	do 
		case "$choice" in
			disk_partition)
				fdisk -l
				break
				;;
			file_sys)
				df -h
				break
				;;
			cpu_load)
				uptime
				break
				;;
			mem_util)
				free -m
				break
				;;
			quit)
				break
				;;
			*)
				echo "error"
				exit
				;;
		esac
	done
	echo "-----------------------------------------------------------------------"
done

       通过在select外面加上while循环,case语句中每匹配一次执行一次break退出select语句,由此实现对select语句进行循坏。执行结果如下图,每次输入后,都将打印一次菜单

猜你喜欢

转载自blog.csdn.net/VinWqx/article/details/104966877