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: 
      
    

Crear colas locales y alias dinamicamente.

|

Requerimiento:

Se quiere crear de forma dinámica una cola local y una cola alias. En este ejemplo se proporcionará el nombre de la cola alias. Mientras tanto, para la cola local, su nombre se formará utilizando el siguiente formato: MQname.QAlias.

Insumos:

Se creará un fichero que contendrá el nombre del gestor de colas y el nombre de la cola alias en el siguiente formato: “MQname Qname”. Le daremos un nombre que nos ayude a identificar el contenido, por ejemplo: n_Colas.dat


      # n_Colas.dat
      QMTES01U TES.AHJ.JGKD.IN
      QMTES01U TES.AHJ.JGKD.OUT
    

Script:

Vamos a crear un shell script usando awk para generar de forma dinámica un fichero .mqsc. Este fichero podremos ejecutarlo fácilmente por medio de runmqsc o simplemente copiar y pegar los comandos.

      
        # creaQL.sh
    
        # Leer el archivo de texto con el formato QMname ALIAS y asignar cada campo a una variable
        awk '{ 
          # Asignar el primer campo a la variable qmname
          qmname=$1
    
          # Asignar el segundo campo a la variable alias
          alias=$2
    
          # Escribir en el fichero colas.mqsc el comando para definir una cola local con el nombre del gestor de colas
          print "DEFINE QLOCAL(\047"qmname"\047)" >> "colas.mqsc"
      
          # Escribir en el fichero colas.mqsc el comando para definir una cola alias con el nombre proporcionado y apuntando a la cola local creada anteriormente
          print "DEFINE QALIAS(\047"alias"\047) TARGET(\047"qmname"\047)" >> "colas.mqsc"
    
        }' n_Colas.dat # Indicar el nombre del archivo de texto a leer
      
    

Resultado:

Al ejecutar el script anterior se generará un fichero .mqsc con el siguiente contenido.

      
        # colas.mqsc
        
        DEFINE QLOCAL('QMTES01U')
        DEFINE QALIAS('TES.AHJ.JGKD.IN') TARGET('QMTES01U')
        DEFINE QLOCAL('QMTES01U')
        DEFINE QALIAS('TES.AHJ.JGKD.OUT') TARGET('QMTES01U')
      
    

 

©2009 CHMRED | Template Blue by TNB