Bygg ditt program steg för steg med hjälp av Shell Scripting - Del 8

Ännu en gång bienvenidos till den här nya lektion (# 8) del Kurs (Handledning) Shell Scripting ”. I ovanstående 7 lektioner Vi kunde skapa och / eller lära oss hur man skapar vissa moduler (sektioner) av koder med specifika funktioner genom  Shell Scripting med Bash Shell som prestanda tolk. Dessa moduler hittills är:

Shell-skript

Att gå till föregående inlägg (lektion 7) tryck på följande länk:

I detta åttonde (8) Å andra sidan kommer vi att koncentrera oss på konstruktionen av flera moduler, dessa är följande:

PROXY-KONFIGURERINGSMODULEN:


# MODULO DE CONFIGURACIÓN DE PROXY


read -p "En caso de requerir configurar un Proxy en su Terminal, introduzca la dirección_ip:puerto necesaria, en caso contrario solo presione la tecla ENTER: " IP_PTO_PROXY

# Nota: Indicar dirección_ip: puerto solo en caso de ser necesario activar debido
# a proxy interno no transparente para la terminal dentro de la red de trabajo
# donde se ejecute.

echo -e '\a'
export http_proxy=$IP_PTO_PROXY
#export no_proxy="127.0.0.1, localhost, 192.168.0.0/22, mi_institucion.gob.ve:8080"

sleep 3
clear

read -p "SI DESEA CANCELAR PRESIONE CUALQUIERA DE LOS SIGUIENTES CARACTERES: "s" "S" "y" "Y". DE LO CONTRARIO PRESIONE CUALQUIER OTRA TECLA! : " op

if [[ $op == "y" || $op == "Y" || $op == "s" || $op == "S" ]];

 then

   sleep 3 ; clear ; exit 0

 else

   sleep 3 ; clear ; read -p "EL PROGRAMA CONTINUARA, OPRIMA CUALQUIER TECLA PARA CONTINUAR..." && sleep 3 ; clear

fi

Funktionen för denna modul är att ange för programmet att konsolen för att utföra uppgifter som kräver internetanslutning kräver en proxy. Om du anger inget (Nyckel ange utan att lägga någon IP) kommer programmet att anta det ingen proxy krävs, annars måste du ange a IP: PORT, för att den ska konfigurera en tillfällig utgående proxy och utföra anslutning.

Selection_001

VÄLKOMMENMODULEN


# MODULO DE BIENVENIDA               

play /usr/share/sounds/startup3.wav 2> /dev/null

echo " BIENVENIDOS AL PROGRAMA "
sleep 3
clear

dialog --infobox "\n \n \nGRACIAS POR USAR ESTE SCRIPT..." 10 80 ; sleep 3

DIALOG=${DIALOG=dialog}

COUNT=10
(
while test $COUNT != 110
do
echo $COUNT
echo "XXX"
echo "ESTIMADO USUARIO, BIENVENIDO AL SCRIPT..."
echo "GRACIAS POR UTILIZARME..."
echo "ESPERE UNOS SEGUNDOS MIENTRAS ME INICIALIZO... ($COUNT %)"
echo "XXX"
COUNT=`expr $COUNT + 10`
sleep 1
done
) |
$DIALOG --title "LPI - SB" --gauge "INICIALIZANDO EL SCRIPT" 10 80 0

clear

echo " SCRIPT DE TRABAJO EN EJECUCIÓN "
echo ""
sleep 3
clear
             

Funktionen för denna modul är att visa en Välkomstbanner till användaren manuellt utformad med alfanumeriska och icke-alfanumeriska tecken. Sedan ett informationsmeddelandefönster per terminal med dialogruta och slutligen en förloppsindikator för att styra nästa steg till nästa modul.

Selection_002

Selection_003

Selection_004

ANVÄNDARGRÄNSSNITTSVÄLJMODULEN


# MODULO DE SELECCIÓN DE INTERFACE DE USUARIO 

DIALOG_CANCEL=1
DIALOG_ESC=255
HEIGHT=0
WIDTH=0

display_result() {
  dialog --title "$1" \
    --no-collapse \
    --msgbox "$result" 0 0
}

while true; do
  exec 3>&1
  selection=$(dialog \
    --backtitle "Script en ejecución" \
    --title "Menu" \
    --clear \
    --cancel-label "Exit" \
    --menu "Seleccione una (1) opción, por favor:" $HEIGHT $WIDTH 4 \
    "1" "Usar interfaz de usuario (GUI) por Terminal" \
    "2" "Usar interfaz de usuario (GUI) por Escritorio" \
    "3" "Cerrar la sesión del Script" \
    2>&1 1>&3)
  exit_status=$?
  exec 3>&-
  case $exit_status in
    $DIALOG_CANCEL)
      clear
      echo "Sesión del Script cancelada."
      exit
      ;;
    $DIALOG_ESC)
      clear
      echo "Sesión del Script abortada." >&2
      exit 1
      ;;
  esac
  case $selection in
    0 )
      clear
      echo "Programa Terminado."
      ;;
    1 )
      result=$(echo "Usuario $USERNAME, usted ha seleccionado la interfaz de usuario (GUI) por Terminal"; echo $FECHA_SISTEMA_N / $HORA_SISTEMA)
      display_result "Script de Trabajo"
      USER_INTERFACE=T ; break
      
      ;;
    2 )
      result=$(echo "Usuario $USERNAME, usted ha seleccionado la interfaz de usuario (GUI) por escritorio"; echo $FECHA_SISTEMA_N / $HORA_SISTEMA)
      display_result "Script de Trabajo"
      USER_INTERFACE=E ; break
      ;;
    3 )
      result=$(echo "Usuario $USERNAME, el SCRIPT ha seleccionado la interfaz de usuario (GUI) por Terminal por defecto"; echo $FECHA_SISTEMA_N / $HORA_SISTEMA)
      display_result "Script de trabajo"
      USER_INTERFACE=T ; break
      ;;
  esac
done

Funktionen för denna modul är att skapa ett menyfönster som gör det möjligt att välja ett alternativ med både tangentbordet och musen. Varje alternativ kan kör ett kommandokommando, en modul, en funktion eller ett annat skript. I det här fallet var det vana vid lagra ett värde i en variabel som sedan tillåter besluta om en beställning utifrån dess innehåll.

Selection_005

Selection_006

Selection_007

MODULEN FÖR VAL OCH UTFÖRANDE AV YTTERLIGARE MODULER


# MODULO DE SELECCIÓN Y EJECUCIÓN DE MÓDULOS ADICIONALES               


if [[ "$USER_INTERFACE" == "T" ]]; then

    bash $UBICACION/lpi_sb8_gui_terminal.sh 
    sleep 3

  else

    bash $UBICACION/lpi_sb8_acond_audiovisual_g_2016.sh

    bash $UBICACION/lpi_sb8_act_mtto_g_2016.sh

fi
       

Funktionen för denna modul är att utföra ett fördefinierat alternativ baserat på ett värde som tidigare lagrats i en variabel. I det här fallet skulle variabeln utlösa ett val mellan att fortsätta att utföra bara aktiviteter via konsol med kommandon och grafiska gränssnitt med dialog ó via grafiska gränssnitt för skrivbordsmiljön med Zenity och Gxmessage.

Selection_008

Selection_009

Selection_010

Selection_010

Selection_011

FRAMTIDMODULEN


# MODULO DE DESPEDIDA               

# Sección que muestra un mensaje de despedida al usuario

echo -e '\a'

echo ''
echo ''
echo '#--------------------------------------------------------#'
echo '#   ESPERE UNOS SEGUNDOS MIENTRAS SE CIERRAN TODOS LOS   #'
echo '#               PROCESOS ABIERTOS DEL SCRIPT             #'
echo '#--------------------------------------------------------#'
echo ''
echo ''

sleep 5
clear

# Sección que instala los paquetes bases del Script

echo -e '\a'

echo ''
echo ''
echo '#--------------------------------------------------------#'
echo '#           MUCHAS GRACIAS POR USAR EL SCRIPT            #'
echo '#                                                        #'
echo '#  EL PROGRAMA HA CULMINADO Y SE CERRARÁ INMEDIATAMENTE  #'
echo '#                    ESTIMADO USUARIO                    #'
echo '#--------------------------------------------------------#'
echo ''
echo ''

sleep 3
clear

wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=MUCHAS%20GRACIAS%20POR%20USAR%20EL%20LINUX%20POST%20INSTALL%20-%20SCRIPT%20BICENTENARIO%2C%20EL%20PROGRAMA%20HA%20FINALIZADO%20Y%20SE%20CERRAR%C3%81%20INMEDIATAMENTE%2C%20ESTIMADO%20USUARIO.&tl=es&total=1&idx=0&textlen=141&tk=899229.758054&client=t&prev=input" ; play -q /tmp/audio.mp3

play /usr/share/sounds/shutdown1.wav 2> /dev/null

rm -f $UBICACION/$FILE_LOCK

setterm --initialize

# MODULO DE DESPEDIDA               

Funktionen för den här modulen är att visa ett meddelande från avskedskonsolen och ta bort den lyckade exekveringsfilen av densamma.

Nedanför en screencast där det visas hur dessa moduler och de tidigare utförs så att de kontrollerar hur alla moduler som visas under de föregående åtta lektionerna fungerar och certifierar kraften i Shell-skript har en högre nivå:

Skript test video

Och varför ska vi använda konsolanvändargränssnitt eller grafisk miljö i vårt skript?

Vi måste komma ihåg det grafiska användargränssnitt, också känd som GUI (grafiskt användargränssnitt) är medel som används för att representera den information och åtgärder som finns tillgängliga i det nedre gränssnittet, med hjälp av en uppsättning bilder och grafiska objekt. Dess huvudsakliga användning består av tillhandahålla en enkel visuell miljö för att möjliggöra kommunikation med maskinens eller datorns operativsystem.

Vi utför vanligtvis åtgärder genom direkt interaktion med utrustningen, det vill säga genom att skriva kommandon eller utföra ett skript med tangentbordet. OCH GUI uppstår som en utveckling av kommandoraden för de första operativsystemen och blir den grundläggande delen i en grafisk miljö.

Och i ett sammanhang av interaktionsprocess mellan människa och dator, GUI är det interaktiva tekniska mediet som tillåter oss, genom användning och grafisk kontextualisering av visuellt språk, en vänlig interaktion med ett datorsystem.

Att använda grafiska gränssnitt ger oss fördelar och nackdelar, till exempel:

Bland fördelarna: Underlätta hanteringen av procedurer, visa varje kommando på skärmen genom en bild eller ett objekt, ge standardiserade kontrollmekanismer som fönster och dialogrutor till användaren, låt användaren interagera med systemet på ett enklare sätt.

Bland nackdelarna: Det använder mer operativsystemresurser, komplexitet, utvecklingstid och kostnad för att göra en sådan utveckling.

Om du vill veta mer om hur du skapar nya och vackrare gränssnitt i Terminal eller på skrivbordet, rekommenderar jag att du lär dig mer om några kommandon som används för att skapa dialogrutor med möjlighet att ta emot eller ge användbar information med bash-skript, till exempel som:

dialog: I Dialogmanual ger oss de olika alternativen du har.

Gxmeddelande: I Gxmessage Manual ger oss de olika alternativen du har.

Zenty: I Zenity Manual ger oss de olika alternativen du har.

Och om du vill ge en ännu mer speciell och interaktiv touch till ditt skript (program) antingen med Bash Shell eller någon annan Shell Jag rekommenderar dessa andra program som, när de används bra, kan hjälpa dig att skapa verkliga underverk utan att vara mycket skickliga i Shell Scripting-frågorna. Bland dessa program har vi:

  • meddela-skicka: Mycket användbart kommando för att göra aviseringar för händelser som att meddela när ett e-postmeddelande anländer, en kontakt sätts online och gör påminnelser om olika uppgifter. 
  • sätta: Kommando som används bland många saker för att placera markören på skärmen, radera data från skärmen, veta antalet rader och kolumner på skärmen, placera ett fält korrekt, radera ett fält vars inmatning upptäcktes som ett fel. Hur som helst, nästan hela parametreringen av skärmen görs med det här kommandot. 
  • tråkiga: Kommando som gör det möjligt att styra aktiverings- och avaktiveringsnycklarna för stora / små bokstäver, det numeriska tangentbordet och rullningstangentbordet individuellt för varje konsol och skrivbord.

Tja, hittills den här serien!


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.