Bash script con menú

|

Requerimiento:

Se quiere crear un script que al momento de iniciar, muestre un menú con opciones.

Insumos:

En el ejemplo básico no es necesirio, pero se puede adaptar según sea necesario


      # file.dat
      saxsaxccewr
	  rgvreveevtv
    

Script:

Vamos a crear un shell script para mostrar un menú.

      
#############################################################################################
# Valida ZZZ config file
#############################################################################################
_menuOp_16()
{
    valZZZConfigFile BEFORE
}
#############################################################################################

#############################################################################################
#############################################################################################
# Muestra el menu general
#############################################################################################
#############################################################################################
_menu()
{
    echo "Select an option:"
    echo ""
    echo "**********************************"
    echo "*************** ZZZ **************"
    echo "**********************************"
    echo "16) CONFIG FILE BEFORE"    
    echo "----------------------------------"    
    echo ""

    echo ""
    echo "99) Exit"
    echo ""
    echo -n "Indicate an option: "
}
#############################################################################################

#############################################################################################
#############################################################################################
#Variables
#############################################################################################
#############################################################################################
# opcion por defecto
opc="0"
tmpPath=/tmp
#varFile=$tmpPath/ed/varCgh.dat
#chg=$(awk ' { if ($2 ~ "chg") {print $1} } ' $varFile)
fecha=$(date +"%d%m%Y")
#server=$(hostname | cut -f 1 -d '.')
#oriIHSConfFile=$(grep $chg $varFile | awk ' { if ($2 ~ "^oriZZZConfFile$") {print $0} } ' | awk '{ $1=$2=""; print $0 }' | awk -F\' '{ print $2 }')
#############################################################################################

#############################################################################################
#############################################################################################
#Validacion previa
#############################################################################################
#############################################################################################

#############################################################################################

#############################################################################################
#############################################################################################
#Main
#############################################################################################
#############################################################################################




# bucle mientas la opcion indicada sea diferente de 9 (salir)
until [ "$opc" -eq "99" ];
do
    case $opc in
        1)
            _menuOp_1
            _menu
            ;;
        2)
            _menuOp_2
            _menu
            ;;
        3)
            _menuOp_3
            _menu
            ;;
        4)
            _menuOp_4
            _menu
            ;;
        5)
            _menuOp_5
            _menu
            ;;

        *)
            # Esta opcion se ejecuta si no es ninguna de las anteriores
            clear
            _menu
            ;;
    esac
    read opc
done
#############################################################################################

    

Resultado:

Al ejecutar el script anterior se muestra un menú con las opciones que se han agregado a la lista

      
        Select an option:
    
		**********************************
		*************** ZZZ **************
		**********************************
		16) CONFIG FILE BEFORE
		----------------------------------		

    
		99) Exit
    
		Indicate an option: 
      
    

 

©2009 CHMRED | Template Blue by TNB