Ännu en gång bienvenidos till den här nya lektion (# 8) del Kurs (Handledning) på 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:
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.
# 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.
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.
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.
# 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å:
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!