Nuovamente benvenuto a questo nuovo lezione (# 8) del Corso (Tutorial) su Scripting della shell ". In quanto sopra 7 lezioni Siamo stati in grado di creare e / o apprendere come creare determinati moduli (sezioni) di codici con funzionalità specifiche Scripting della shell utilizzando Bash Shell come interprete delle prestazioni. Questi moduli finora sono:
Per andare al post precedente (lezione 7) premere il seguente collegamento:
In questo ottavo (8) D'altra parte, ci concentreremo sulla costruzione di diversi moduli, questi sono i seguenti:
IL MODULO DI CONFIGURAZIONE DEL 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
La funzione di questo modulo è quella di indicare al programma che la console per eseguire attività che richiedono connettività internet necessita di un proxy. Se tu non indica nulla (Chiave entrare senza mettere alcun IP) il programma lo assumerà nessun proxy richiesto, altrimenti devi indicare un IP: PORTA, affinché possa configurare un proxy in uscita temporaneo ed eseguire la connettività.
# 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
La funzione di questo modulo è mostrare un file Banner di benvenuto all'utente progettato manualmente con caratteri alfanumerici e non alfanumerici. Quindi una finestra di messaggio informativo per terminale con dialogo e infine una barra di avanzamento per controllare il passaggio successivo al modulo successivo.
IL MODULO DI SELEZIONE DELL'INTERFACCIA UTENTE
# 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
La funzione di questo modulo è quella di creare una finestra di tipo menu che permette di scegliere un'opzione con l'uso sia della tastiera che del mouse. Ogni opzione può eseguire un comando comando, un modulo, una funzione o un altro script. In questo caso particolare, era abituato a memorizzare un valore in una variabile che poi permetterà decidere un ordine in base al suo contenuto.
IL MODULO DI SELEZIONE ED ESECUZIONE DEI MODULI AGGIUNTIVI
# 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
La funzione di questo modulo è di eseguire un'opzione predefinita basata su un valore precedentemente memorizzato in una variabile. In questo caso, quella variabile attiverebbe una selezione tra continuare a svolgere solo attività tramite console con comandi e interfacce grafiche con dialog ó tramite interfacce grafiche per l'ambiente desktop con Zenity e 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
La funzione di questo modulo è quella di mostrare un messaggio dalla console di addio ed eliminare il file di corretta esecuzione dello stesso.
Di seguito a screencast dove viene mostrato come vengono eseguiti questi moduli e quelli precedenti in modo che possano verificare come funzionano tutti i moduli mostrati durante le 8 lezioni precedenti, e certificare la potenza del Shell Scripting ha un livello superiore:
E perché dovremmo usare le interfacce utente della console o l'ambiente grafico per il nostro script?
Dobbiamo ricordarlo interfacce utente grafiche, noto anche come GUI (interfaccia utente grafica) sono mezzi utilizzati per rappresentare le informazioni e le azioni disponibili nell'interfaccia inferiore, utilizzando un insieme di immagini e oggetti grafici. Il suo utilizzo principale consiste in fornire un semplice ambiente visivo per consentire la comunicazione con il sistema operativo di una macchina o computer.
Solitamente eseguiamo azioni attraverso l'interazione diretta con l'apparecchiatura, ovvero digitando comandi o eseguendo uno script con la tastiera. E Le GUI emergono come evoluzione della riga di comando dei primi sistemi operativi e diventare il pezzo fondamentale in un ambiente grafico.
E in un contesto di processo di interazione uomo-computer, la GUI è il mezzo tecnologico interattivo che ci permette, attraverso l'uso e la contestualizzazione grafica del linguaggio visivo, un'interazione amichevole con un sistema informatico.
L'utilizzo di interfacce grafiche ci fornisce vantaggi e svantaggi, come ad esempio:
Tra i vantaggi: Facilitare la gestione delle procedure, Visualizzare ogni comando sullo schermo tramite un'immagine o un oggetto, Fornire all'utente meccanismi di controllo standardizzati come finestre e finestre di dialogo, Consentire all'utente di interagire con il sistema in modo più semplice.
Tra gli svantaggi: Occorrono più risorse del sistema operativo, complessità, tempo di sviluppo e costi per eseguire tale sviluppo.
Se vuoi saperne di più su come creare nuove e più belle interfacce in Terminal o sul desktop, ti consiglio di conoscere alcuni comandi che vengono utilizzati per costruire finestre di dialogo con la possibilità di ricevere o fornire informazioni utilizzabili con script bash, come:
il dialogo: Nel Manuale di dialogo ci offre le diverse opzioni che hai.
Gxmessaggio: Nel Manuale Gxmessage ci offre le diverse opzioni che hai.
Zenità: Nel Manuale Zenity ci offre le diverse opzioni che hai.
E se vuoi dare un tocco ancora più speciale e interattivo al tuo Script (Programmi) con Bash shell o altro Conchiglia Raccomando questi altri programmi che, se usati bene, possono aiutarti a creare vere meraviglie senza essere molto esperto nelle questioni di Shell Scripting. Tra questi programmi abbiamo:
- notifica-invio: Comando molto utile per effettuare notifiche per eventi come la notifica quando arriva un'e-mail, un contatto viene messo online e ricorda varie attività.
- metti: Comando che viene utilizzato tra molte cose per posizionare il cursore sullo schermo, cancellare i dati dallo schermo, conoscere il numero di righe e colonne sullo schermo, posizionare correttamente un campo, cancellare un campo il cui input è stato rilevato come errore. Ad ogni modo, quasi tutta la parametrizzazione dello schermo viene eseguita da questo comando.
- stabili: Comando che permette di controllare i tasti di attivazione e disattivazione delle lettere maiuscole / minuscole, della tastiera numerica e della tastiera a scorrimento singolarmente per ogni console e desktop.
Bene, finora questa serie!