Crea il tuo programma passo dopo passo usando Shell Scripting - Parte 8

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:

Shell Scripting

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à.

Selección_001

IL MODULO DI BENVENUTO


# 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.

Selección_002

Selección_003

Selección_004

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.

Selección_005

Selección_006

Selección_007

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.

Selección_008

Selección_009

Selección_010

Selección_010

Selección_011

IL MODULO DI ADDIO


# 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:

Script Test Video

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!


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.