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

Dans les entrées précédentes de cette série de publications, nous avons rappelé comment implémenter un:

Shell Scripting

Et dans les précédents, comment mettre en œuvre un Shebang et un BSM (Bash Strict Mode / Strict Bash Mode).

Meilleures pratiques pour créer un script Shell sous GNU / Linux - Partie 1

Meilleures pratiques pour créer un script Shell sous GNU / Linux - Partie 2

Voici un exemple de Module d'optimisation, prenant comme exemple l'un de mes programmes (applications) faits dans un Script shell appelé Post-installation Linux - Script du bicentenaire 8.0:

Cela devrait être le module (section) pour installer les packages de base nécessaires au bon fonctionnement de ceux-ci, ou exécuter les actions minimales nécessaires pour mettre à jour, maintenir ou exécuter l'environnement de travail ou le système d'exploitation afin que tout fonctionne de manière satisfaisante. J'ajoute personnellement les lignes suivantes pour créer ce module:


###############################################################################
# INICIO DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO               
###############################################################################

# Sección que instala los paquetes bases del LPI-SB

echo -e '\a'

apt update && apt install dialog gxmessage zenity espeak gksu -y && apt install -f && dpkg --configure -a

if [ $? = 0 ]; then

     echo ""
     echo ""
     echo "#--------------------------------------------------------#"
     echo "#LA INSTALACIÓN DE LOS PAQUETES HA CULMINADO EXITOSAMENTE#"
     echo "#--------------------------------------------------------#"
     echo ""
     echo ""

     play /usr/share/sounds/info.wav 2> /dev/null

     sleep 3
     clear

else

     echo ''
     echo ''
     echo '#--------------------------------------------------------#'
     echo '# LA INSTALACIÓN DE LOS PAQUETES NO CULMINO EXITOSAMENTE #'
     echo '#--------------------------------------------------------#'
     echo ''
     echo ''

     play /usr/share/sounds/warning.wav 2> /dev/null

     sleep 3
     clear

     echo ''
     echo ''
     echo '#--------------------------------------------------------#'
     echo '#                  EJECUTE MANUALMENTE                   #'
     echo '# UN MANTENIMIENTO PREVENTIVO Y CORRECTIVO EN SU SISTEMA #'
     echo '#   EJECUTANDO LA SIGUIENTES ORDEN DE COMANDO, 1 HA 1:   #'
     echo '#                                                        #'
     echo '#                       apt update                       #'
     echo '#                     apt install -f                     #'
     echo '#                   dpkg --configure -a                  #'
     echo '#                       apt upgrade                      #'
     echo '#                                                        #'
     echo '#   LUEGO INSTALE MANUALMENTE LOS PAQUETES NECESARIOS    #'
     echo '#         CON LA ORDEN DE COMANDO SIGUIENTE:             #'
     echo '#                                                        #'
     echo '#      apt install dialog gxmessage zenity espeak -y     #'
     echo '#                                                        #'
     echo '#  AHORA, VUELVA HA INTENTAR EJECUTAR EL SCRIPT LPI-SB   #'
     echo '#--------------------------------------------------------#'
     echo ''
     echo ''

     sleep 3
     clear

     play /usr/share/sounds/info.wav 2> /dev/null

     exit 0

fi

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=BIENVENIDO%20AL%20LINUX%20POST%20INSTALL%20-%20SCRIPT%20BICENTENARIO&tl=es&total=1&idx=0&textlen=54&tk=511133.124198&client=t&prev=input&ttsspeed=0.24" ; play -q /tmp/audio.mp3

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=ESTIMADO%20USUARIO%2C%20ESPERE%20UNOS%20SEGUNDOS%20MIENTRAS%20EL%20PROGRAMA%20SE%20CARGA%20E%20INICIA&tl=es&total=1&idx=0&textlen=77&tk=337132.200023&client=t&prev=input" ; play -q /tmp/audio.mp3

###############################################################################
# FINAL DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO               
###############################################################################

===============

Comme vous pouvez le voir, ce module exécute un mise à jour d'aptitude, suivi de l'installation des packages dialogue gxmessage zenity espeak gksu, continuant avec les ordres de commandement aptitude installer -f y dpkg -configurer -a. Et dans le cas où et seulement si tout a été exécuté de manière satisfaisante, un message visuel par terminal de réussite avec un alerte sonore et j'ai continué avec l'étape suivante (module / section) du Script Shell. Sinon, un message visuel par terminal de réalisation infructueuse avec un alerte sonore, avec un autre message visuel du terminal recommandant des actions manuelles à exécuter pour éviter que l'erreur ne se reproduise, puis terminez l'exécution du Script Shell.

Par rapport aux 2 dernières lignes du module, ceux qui commencent par commande wget, pour l'instant ils ne sont pas essentiels, car ils font partie d'un Procédure expérimentale adapté par moi pour réaliser le support vocal d'un Script shell avec une connexion Internet via le Synthétiseur vocal en ligne de Google Translate et sa voix féminine sensuelle, et ainsi remplacer le synthétiseur avec voix robotique (mâle / femelle) fourni localement par les systèmes d'exploitation GNU / Linux avec les packages (programmes) espeak, festival, festvox, mbrola, discours et stardict.

recommandation:

LISEZ LE DOCUMENT: «LA CATHÉDRALE ET LE BAZAR»

La cathédrale et le bazar est une sorte de manifeste créé par Eric S. Raymond en el año 1.998 pour essayer d'expliquer de votre point de vue et de votre expérience personnelle (Création du programme Récupérer le courrier) ce qu'il a perçu de la création et de l'évolution réussies de Linux et de ses programmes associés, en particulier du point de vue de la différence entre les Modèles de développement logiciel, qu'il a personnellement appelé: Modèle de cathédrale et modèle de bazar.

Mon analyse sommaire de ce document est la suivante:

Cette lecture suggère ou présente la vision que dans le monde de Génie logiciel il existe «deux styles de développement complètement différents, modèle cathédrale, applicable à la plupart des développements réalisés dans le monde Logiciel commercial, contre modèle de bazar, plus typique du monde Linux ". Soulignant que ces 2 modèles sont dérivés de points de départ opposés sur la nature du processus de débogage logiciel, et de sa théorie particulière sur ce qu'il a appelé Loi de Linus qui a déclaré ce qui suit: "Avec un nombre suffisant d'yeux, toutes les erreurs ne sont pas pertinentes" ou en d'autres termes: "Avec un nombre suffisant d'yeux, toutes les erreurs sont des bagatelles."

Aussi dans cette lecture, l'auteur met l'accent sur le mot pirate, ce que l'auteur a exprimé à mon avis comme une sorte de Utilisateur de haut niveau capable de comprendre et d'exploiter efficacement un programme, et de détecter, suggérer ou mettre en œuvre des corrections ou des modifications de forme et de substance efficaces pour l'ensemble de la communauté d'utilisateurs. J'ai beaucoup aimé ce concept auto-suggéré car je pense qu'il est correct, cependant, je vais en laisser un que j'aime aussi beaucoup car il est beaucoup plus global et / ou générique.

pirate

"Linux est subversif." Parce que? La première chose que cette lecture nous dit est que:

Jusque-là, il y avait une grande diversité de méthodes ou de modèles de développement logiciel standardisés basés sur un "Approche plus centralisée et planifiée dès le départ" à la suite de l'acte de conception d'un logiciel considéré comme quelque chose lié à un Facteur X qui mène à «Une certaine complexité critique». Et que malgré le fait que cela existait déjà dans le Monde UnixEn d'autres termes, un travail composé de petits outils, de développement rapide de prototypes et de programmation évolutive, l'apparition de la philosophie de développement de logiciels libres sous Linux a amené la question à un autre niveau de sophistication.

En conséquence, alors que Développement de logiciels privés était fait de "Façon silencieuse et respectueuse", lorsque vous construisez un Cathédrale, l' Développement de logiciels libres (Linux) était fait de "façon animée et avec de multiples agendas (chemins) et approches (propositions) ", tout comme vous étiez dans un grand Bazar.

Enfin, il expose une série de prémisses à décomposer et à digérer dans leur propre contexte pour comprendre ceux qui se développent pour la communauté des utilisateurs de logiciels libres. Ces locaux sont:

  1. TOUS LES BONS EMPLOIS DANS LE LOGICIEL COMMENCE À ESSAYER DE S'IL VOUS PLAÎT UN PROBLÈME PERSONNEL DONT VOUS LES PLANIFIEZ.
  2. Les bons programmeurs savent quoi écrire. LES PLUS GRANDS SAVENT QUOI RÉÉCRIRE (ET RÉUTILISER).
  3. PENSEZ À JETER AU MOINS UN: VOUS FINISSEZ PAR LE FAIRE DE TOUTE MANIÈRE. "
  4. SI VOUS AVEZ LA BONNE ATTITUDE, DES PROBLÈMES INTÉRESSANTS VOUS TROUVERONT.
  5. Lorsqu'un programme ne vous intéresse plus, votre dernier devoir est de le transmettre à un successeur compétent.
  6. TRAITER VOS UTILISATEURS COMME DES COLLABORATEURS EST LE MOYEN LE MOINS COMPLIQUÉ D'AMÉLIORER RAPIDEMENT ET DE DÉBUGER EFFICACEMENT UN PROGRAMME.
  7. LIBÉREZ-LE BIENTÔT. LANCEZ-LE SOUVENT. ET ÉCOUTEZ VOS UTILISATEURS.
  8. DONNÉ UNE LARGE ASSEZ DE BASE DE TESTEURS ET DE CONTRIBUTEURS, PRESQUE TOUS LES PROBLÈMES SERONT IDENTIFIÉS RAPIDEMENT ET LEUR SOLUTION SERA ÉVIDUELLE POUR QUELQU'UN.

Plus 11 autres locaux restants qui sont plus du type à réfléchir (moral), qui ne vient pas avec l'histoire mais avec ce qui est interprété par chacun lecteur (développeur), ce qui, dans mon cas très particulier, m'a conduit aux conclusions suivantes:

Conclusions

J'espère que vous avez aimé cette information et qu'elle est utile, car La lecture de la cathédrale et du bazar est une référence obligatoire pour tous ceux qui programment un développement de logiciel libre, quelle que soit sa taille.

Plus tard, dans les prochains articles, nous continuerons de voir un exemple de modules (sections) qui exécutent des fonctions telles que:

  • MODULE D'AUTORISATION D'UTILISATEUR AVEC MOT DE PASSE
  • MODULE DE DÉTECTION DE L'ARCHITECTURE DU SYSTÈME D'EXPLOITATION
  • MODULE DE CONFIGURATION DE LA LANGUE DE CODAGE
  • MODULE DE CONFIGURATION DE PROXY POUR L'ENVIRONNEMENT D'EXÉCUTION

Parmi beaucoup d'autres!

Et comme toujours, je recommande apprendre de manière autodidacte sur les commandes: gksu, dialogue, gxmessage, zénité, espeak, jouer, parmi beaucoup d'autres pour créer des interfaces graphiques par Terminal ou pour le bureau de l'utilisateur, avec alertes sonores ou multimédia, et avancez les connaissances qu'ils utiliseront plus tard.

N'oubliez pas que ces recommandations et toutes les autres sur certains module, fonction, variable, commande ou action en général, il peut être effectué plusieurs façons, et ce qui est montré ici n'est qu'un façon simple, De l' de nombreuses façons possibles et probables dans lequel dit l'action peut ou pourrait être effectuée!

Juste pour finir je te laisse, un Screencast fait par moi, pour vous montrer de quoi vous seriez capable, après avoir terminé Curso online de Shell Scripting en DesdeLinux:

ScreenCast de test LPI-SB8

(LINUX POST INSTALL - BICENTENNIAL SCRIPT 8.0.0) - Partie 2


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.