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:
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é.
# 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.
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.
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.
# 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:
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!