Încă o dată bun venit la acest nou lecție (# 8) del Curs (Tutorial) pe Shell Scripting ”. În cele de mai sus 7 lecții Am reușit să realizăm și / sau să aflăm despre cum să creăm anumite module (secțiuni) de coduri cu funcționalități specifice prin intermediul Shell Scripting folosind Bash Shell ca interpret de performanță. Aceste module de până acum sunt:
Pentru a merge la post anterior (lecția 7) apăsați următorul link:
În acest opt (8) Pe de altă parte, ne vom concentra asupra construcției mai multor module, acestea fiind următoarele:
MODULUL DE CONFIGURARE PROXY:
# 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
Funcția acestui modul este de a indica programului că consola pentru a efectua sarcini care necesită conectivitate la internet necesită un proxy. daca tu nu indică nimic (Cheie Intrați fără a pune niciun IP) programul va presupune că nu este necesar proxy, altfel trebuie să indicați a IP: PORT, pentru ca acesta să configureze un proxy temporar de ieșire și să realizeze conectivitate.
# 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
Funcția acestui modul este de a afișa un Banner de bun venit utilizatorului proiectat manual cu caractere alfanumerice și non-alfanumerice. Apoi o fereastră de mesaje informative pe terminal cu Dialog și în cele din urmă o bară de progres pentru a controla pasul următor către modulul următor.
MODULUL DE SELECȚIE A INTERFEȚEI UTILIZATORULUI
# 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
Funcția acestui modul este de a crea o fereastră de tip meniu care permite alegerea unei opțiuni cu ajutorul tastaturii și al mouse-ului. Fiecare opțiune poate executați o comandă de comandă, un modul, o funcție sau un alt script. În acest caz special, era obișnuit stocați o valoare într-o variabilă care va permite apoi decide o comandă în funcție de conținutul acesteia.
MODULUL PENTRU SELECȚIA ȘI EXECUTAREA MODULURILOR SUPLIMENTARE
# 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
Funcția acestui modul este de a executa o opțiune predefinită pe baza unei valori stocate anterior într-o variabilă. În acest caz, acea variabilă ar declanșa o selecție între a continua să efectuați numai activități prin consolă cu comenzi și interfețe grafice cu dialog ó prin interfețe grafice pentru mediul desktop cu Zenity și 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
Funcția acestui modul este de a afișa un mesaj de la consola de rămas bun și de a șterge fișierul executării sale cu succes.
Sub un screencast unde se arată cum sunt executate aceste module și cele anterioare, astfel încât să poată verifica modul în care funcționează toate modulele afișate în timpul celor 8 lecții anterioare și să certifice puterea shell a Scripting are un nivel superior:
Și de ce ar trebui să folosim interfețele utilizatorului de consolă sau mediul grafic pentru scriptul nostru?
Trebuie să ne amintim că interfețe grafice de utilizator, de asemenea cunoscut ca si GUI (Interfață grafică pentru utilizator) sunt mijloace utilizate pentru a reprezenta informațiile și acțiunile disponibile în interfața inferioară, utilizând un set de imagini și obiecte grafice. Utilizarea sa principală constă din oferiți un mediu vizual simplu pentru a permite comunicarea cu sistemul de operare al unei mașini sau computer.
De obicei, efectuăm acțiunile prin interacțiunea directă cu echipamentul, adică prin tastarea comenzilor sau executarea unui script cu tastatura. Da GUI apar ca o evoluție a liniei de comandă a primelor sisteme de operare și devenind piesa fundamentală într-un mediu grafic.
Și într-un context de proces de interacțiune om-computer, GUI este mediul tehnologic interactiv care ne permite, prin utilizarea și contextualizarea grafică a limbajului vizual, o interacțiune prietenoasă cu un sistem informatic.
Utilizarea interfețelor grafice ne oferă avantaje și dezavantaje, cum ar fi:
Printre avantaje: Facilitează gestionarea procedurilor, Afișează fiecare comandă pe ecran printr-o imagine sau obiect, Oferă utilizatorului mecanisme standardizate de control, cum ar fi ferestre și casete de dialog, Permite utilizatorului să interacționeze cu sistemul într-un mod mai ușor.
Printre dezavantaje: Folosește mai multe resurse ale sistemului de operare, complexitate, timp de dezvoltare și costuri pentru realizarea unei astfel de dezvoltări.
Dacă doriți să aflați mai multe despre cum să creați interfețe noi și mai frumoase în Terminal sau pe desktop, vă recomand să aflați câteva comenzi care sunt folosite pentru a construi ferestre de dialog cu posibilitatea de a primi sau de a oferi informații care pot fi acționate cu scripturi bash, cum ar fi la fel de:
dialog: În Manual de dialog ne oferă diferitele opțiuni pe care le aveți.
gxmessage: În Manual Gxmessage ne oferă diferitele opțiuni pe care le aveți.
Zenitate: În Manualul Zenity ne oferă diferitele opțiuni pe care le aveți.
Și dacă doriți să dați o notă și mai specială și mai interactivă Scriptului dvs. (Programe) fie cu Bash shell sau altul Coajă Vă recomand aceste alte programe care, bine folosite, vă pot ajuta să creați adevărate minuni fără a fi foarte priceput în problemele Shell Scripting. Printre aceste programe avem:
- notifica-trimite: Comandă foarte utilă pentru a face notificări pentru evenimente, cum ar fi notificarea când sosește un e-mail, un contact este pus online și a face memento-uri despre diferite sarcini.
- a pune: Comandă care este utilizată printre multe lucruri pentru a poziționa cursorul pe ecran, a șterge datele de pe ecran, a cunoaște numărul de linii și coloane de pe ecran, a poziționa corect un câmp, a șterge un câmp a cărui intrare a fost detectată ca o eroare. Oricum, aproape toată parametrizarea ecranului se face prin această comandă.
- setle: Comandă care permite controlul tastelor de activare și dezactivare a literelor majuscule / minuscule, a tastaturii numerice și a tastaturii defilante individual pentru fiecare consolă și desktop.
Ei bine, până acum această serie!