Nog een keer welkom naar deze nieuwe les (# 8) del Cursus (zelfstudie) op Shell Scripting ”. In bovenstaande 7 lessen We hebben kunnen maken en / of leren hoe we bepaalde modules (secties) van codes met specifieke functionaliteiten kunnen maken Shell Scripting met behulp van Bash Shell als performancetolk. Deze modules zijn tot nu toe:
Om naar het Vorig bericht (les 7) druk op de volgende link:
In deze achtste (8) Anderzijds zullen we ons concentreren op de constructie van verschillende modules, namelijk de volgende:
DE PROXY CONFIGURATIEMODULE:
# 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
De functie van deze module is om aan het programma aan te geven dat de console een proxy vereist om taken uit te voeren die een internetverbinding vereisen. als jij geeft niets aan (Sleutel Enter zonder een IP in te voeren), zal het programma dat aannemen geen proxy vereist, anders moet u een IP: POORT, zodat het een tijdelijke uitgaande proxy kan configureren en connectiviteit kan uitvoeren.
# 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
De functie van deze module is om een Welkom banner voor de gebruiker handmatig ontworpen met alfanumerieke en niet-alfanumerieke tekens. Vervolgens een informatief berichtvenster per terminal met Dialoog en tot slot een voortgangsbalk om de volgende stap naar de volgende module te regelen.
DE GEBRUIKERSINTERFACE SELECTIEMODULE
# 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
De functie van deze module is om een menu-achtig venster te creëren waarin u een optie kunt kiezen met behulp van zowel het toetsenbord als de muis. Elke optie kan voer een commando commando, een module, een functie of een ander script uit. In dit specifieke geval was het gewend sla een waarde op in een variabele wat dan zal toestaan beslis een bestelling op basis van de inhoud.
DE SELECTIE- EN UITVOERINGSMODULE VOOR AANVULLENDE MODULES
# 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
De functie van deze module is om een vooraf gedefinieerde optie uit te voeren op basis van een waarde die eerder is opgeslagen in een variabele. In dit geval zou die variabele een selectie triggeren tussen alleen activiteiten blijven uitvoeren via console met commando's en grafische interfaces met dialoog ó via grafische interfaces voor de desktopomgeving met Zenity en 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
De functie van deze module is om een bericht te tonen door de afscheidsconsole en het succesvolle uitvoeringsbestand daarvan te verwijderen.
Hieronder een screencast waar wordt getoond hoe deze modules en de vorige worden uitgevoerd, zodat ze controleren hoe alle modules getoond tijdens de vorige 8 lessen werken, en de kracht van de Shell-scripts heeft een hoger niveau:
En waarom zouden we consolegebruikersinterfaces of grafische omgevingen voor ons script gebruiken?
Dat moeten we onthouden grafische gebruikersinterfaces, ook gekend als GUI (grafische gebruikersinterface) zijn de medium dat wordt gebruikt om de informatie en acties weer te geven die beschikbaar zijn in de onderste interface, met behulp van een reeks afbeeldingen en grafische objecten. Het belangrijkste gebruik bestaat uit een eenvoudige visuele omgeving bieden om communicatie met het besturingssysteem van een machine of computer mogelijk te maken.
Meestal voeren we de acties uit door directe interactie met de apparatuur, dat wil zeggen door commando's te typen of een script uit te voeren met het toetsenbord. EN GUI's ontstaan als een evolutie van de opdrachtregel van de eerste besturingssystemen en het fundamentele stuk in een grafische omgeving worden.
En in een context van interactie tussen mens en computeris de GUI het interactieve technologische medium dat ons, door het gebruik en de grafische contextualisering van beeldtaal, een vriendelijke interactie met een computersysteem mogelijk maakt.
Het gebruik van grafische interfaces levert ons voor- en nadelen op, zoals:
Enkele voordelen: Vergemakkelijk de afhandeling van procedures, Geef elke opdracht op het scherm weer via een afbeelding of object, Bied de gebruiker gestandaardiseerde controlemechanismen zoals vensters en dialoogvensters, Sta de gebruiker toe om op een gemakkelijkere manier met het systeem te communiceren.
Een van de nadelen: Het gebruikt meer systeembronnen, complexiteit, ontwikkelingstijd en kosten om een dergelijke ontwikkeling uit te voeren.
Als je meer wilt weten over het maken van nieuwe en mooiere interfaces in Terminal of op het bureaublad, raad ik je aan om enkele commando's te leren die worden gebruikt om dialoogvensters te bouwen met de mogelijkheid om bruikbare informatie te ontvangen of te geven met bash-scripts, zoals:
dialoog: In de Dialoogvenster geeft ons de verschillende opties die u heeft.
Gxbericht: In de Gxmessage-handleiding geeft ons de verschillende opties die u heeft.
Zeniteit: In de Zenity-handleiding geeft ons de verschillende opties die u heeft.
En als u een nog specialer en interactiever tintje aan uw Script (Programma's) wilt geven, ook met Bash Shell of een ander Shell Ik raad deze andere programma's aan die, als ze goed worden gebruikt, je kunnen helpen echte wonderen te creëren zonder erg bedreven te zijn in de Shell Scripting-kwesties. Onder deze programma's hebben we:
- bericht verzenden: Zeer handig commando om notificaties te maken voor gebeurtenissen zoals een melding wanneer er een e-mail binnenkomt, een contactpersoon online wordt gezet en herinneringen aan verschillende taken.
- leggen: Commando dat onder meer wordt gebruikt om de cursor op het scherm te plaatsen, gegevens van het scherm te wissen, het aantal regels en kolommen op het scherm te kennen, een veld correct te positioneren, een veld te wissen waarvan de invoer als een fout is gedetecteerd. Hoe dan ook, bijna alle parametrisering van het scherm wordt gedaan door deze opdracht.
- nederzettingen: Commando waarmee u de activering en deactiveringstoetsen van de hoofdletters / kleine letters, het numerieke toetsenbord en het scrollende toetsenbord afzonderlijk kunt bedienen voor elke console en elk bureaublad.
Nou, tot nu toe deze serie!