[Shell] selecione o uso

       select pode ser usado para loops. Semelhante a outros loops, select depende do julgamento condicional na parte superior ou inferior do bloco de código para determinar o branch do programa. Em termos de exibição de vários menus e entrada do usuário, a seleção pode facilmente produzir menus para os usuários escolherem e usarem. A instrução select é geralmente usada com a instrução case, e seu formato de sintaxe é:

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

Exemplo de uso: exibir informações relacionadas ao sistema do computador

#! /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

Resultados de:

       Pode-se ver nos resultados de execução acima que as opções do menu aparecem após a execução do script de shell e só aparecem uma vez. Portanto, se você precisar ver muitas opções de uma vez, pode não ser tão conveniente. Combinado com o loop while, você pode exibir as opções do menu sempre que entrar. A codificação é a seguinte:

#! /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

       Ao adicionar um loop while fora do select, a instrução select é executada uma vez para cada correspondência na instrução case, e a instrução select é então repetida. O resultado da execução é mostrado na figura abaixo. Após cada entrada, o menu será impresso uma vez

Acho que você gosta

Origin blog.csdn.net/VinWqx/article/details/104966877
Recomendado
Clasificación