Construisez votre programme étape par étape en utilisant Shell Scripting - Partie 8

Une fois de plus accueil à ce nouveau leçon (# 8) de la Cours (Tutoriel) sur Scripting Shell ». Au dessus 7 cours Nous avons pu faire et / ou apprendre à créer certains modules (sections) de codes avec des fonctionnalités spécifiques grâce à  Script de Shell à l'aide de Bash Shell comme interprète de performance. Jusqu'à présent, ces modules sont:

Shell Scripting

Pour aller à la publication précédente (leçon 7) appuyez sur le lien suivant:

Dans ce huitième (8) D'autre part, nous nous concentrerons sur la construction de plusieurs modules, ceux-ci étant les suivants:

LE MODULE DE CONFIGURATION DU 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 fonction de ce module est d'indiquer au programme que la console pour effectuer des tâches nécessitant une connectivité Internet nécessite un proxy. Si vous n'indique rien (Clé Entrer sans mettre d'adresse IP), le programme supposera que aucun proxy requis, sinon vous devez indiquer un IP: PORT, pour qu'il configure un proxy sortant temporaire et effectue la connectivité.

Selection_001

LE MODULE DE BIENVENUE


# 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 fonction de ce module est d'afficher un Bannière de bienvenue à l'utilisateur conçu manuellement avec des caractères alphanumériques et non alphanumériques. Puis une fenêtre de message d'information par terminal avec dialogue et enfin une barre de progression pour contrôler la prochaine étape vers le module suivant.

Selection_002

Selection_003

Selection_004

LE MODULE DE SÉLECTION DE L'INTERFACE UTILISATEUR


# 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 fonction de ce module est de créer une fenêtre de type menu qui permet de choisir une option en utilisant à la fois le clavier et la souris. Chaque option peut exécuter une commande commande, un module, une fonction ou un autre script. Dans ce cas particulier, il était utilisé pour stocker une valeur dans une variable ce qui permettra alors décider d'une commande en fonction de son contenu.

Selection_005

Selection_006

Selection_007

LE MODULE DE SÉLECTION ET D'EXÉCUTION POUR LES MODULES SUPPLÉMENTAIRES


# 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 fonction de ce module est d'exécuter une option prédéfinie basée sur une valeur préalablement stockée dans une variable. Dans ce cas, cette variable déclencherait une sélection entre continuer à effectuer uniquement des activités via console avec commandes et interfaces graphiques avec dialogue ó via des interfaces graphiques pour l'environnement de bureau avec Zenity et Gxmessage.

Selection_008

Selection_009

Selection_010

Selection_010

Selection_011

LE MODULE FAREWELL


# 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 fonction de ce module est d'afficher un message par la console d'adieu et de supprimer le fichier d'exécution réussie de celui-ci.

Ci-dessous un Screencast où il est montré comment ces modules et les précédents sont exécutés afin qu'ils vérifient le fonctionnement de tous les modules montrés lors des 8 leçons précédentes, et certifient la puissance du Shell Scripting a un niveau supérieur:

Vidéo de test de script

Et pourquoi devrions-nous utiliser des interfaces utilisateur de console ou un environnement graphique pour notre script?

Nous devons nous rappeler que interfaces utilisateur graphiques, également connu sous le nom GUI (interface utilisateur graphique) sont support utilisé pour représenter les informations et actions disponibles dans l'interface inférieure, à l'aide d'un ensemble d'images et d'objets graphiques. Son utilisation principale consiste en fournir un environnement visuel simple pour permettre la communication avec le système d'exploitation d'une machine ou d'un ordinateur.

Habituellement, nous effectuons les actions par interaction directe avec l'équipement, c'est-à-dire en tapant des commandes ou en exécutant un script avec le clavier. ET Les interfaces graphiques apparaissent comme une évolution de la ligne de commande des premiers systèmes d'exploitation et devenir la pièce fondamentale dans un environnement graphique.

Et dans un contexte de processus d'interaction homme-machine, l'interface graphique est le support technologique interactif qui nous permet, à travers l'utilisation et la contextualisation graphique du langage visuel, une interaction conviviale avec un système informatique.

L'utilisation d'interfaces graphiques nous offre des avantages et des inconvénients, tels que:

Parmi les avantages: Faciliter la gestion des procédures, Afficher chaque commande à l'écran à travers une image ou un objet, Fournir à l'utilisateur des mécanismes de contrôle standardisés tels que des fenêtres et des boîtes de dialogue, Permettre à l'utilisateur d'interagir plus facilement avec le système.

Parmi les inconvénients: Il utilise plus de ressources du système d'exploitation, de complexité, de temps de développement et de coût pour effectuer un tel développement.

Si vous voulez en savoir plus sur la façon de créer de nouvelles et plus belles interfaces dans Terminal ou sur le bureau, je vous recommande de vous renseigner sur certaines commandes utilisées pour créer des fenêtres de dialogue avec la possibilité de recevoir ou de donner des informations exploitables avec des scripts bash, tels que :

dialogue: Dans le Manuel de dialogue nous donne les différentes options dont vous disposez.

Gxmessage : Dans le Manuel Gxmessage nous donne les différentes options dont vous disposez.

Zenité: Dans le Manuel Zenity nous donne les différentes options dont vous disposez.

Et si vous souhaitez donner une touche encore plus spéciale et interactive à votre Script (Programmes) soit avec Coque Bash ou autre coquillage Je recommande ces autres programmes qui, lorsqu'ils sont bien utilisés, peuvent vous aider à créer de véritables merveilles sans être très doué pour les problèmes de script Shell. Parmi ces programmes, nous avons:

  • notifier-envoyer: Commande très utile pour faire des notifications d'événements tels que notifier l'arrivée d'un e-mail, la mise en ligne d'un contact et faire des rappels de diverses tâches. 
  • tput : Commande qui permet entre autres de positionner le curseur sur l'écran, de supprimer des données de l'écran, de connaître le nombre de lignes et de colonnes à l'écran, de positionner correctement un champ, de supprimer un champ dont l'entrée a été détectée comme une erreur. Quoi qu'il en soit, presque tout le paramétrage de l'écran se fait par cette commande. 
  • réglés : Commande qui permet de contrôler les touches d'activation et de désactivation des lettres majuscules / minuscules, le clavier numérique et le clavier de défilement individuellement pour chaque console et bureau.

Eh bien, jusqu'ici cette série!


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.