Bouw uw programma stap voor stap met Shell Scripting - Deel 4

In eerdere vermeldingen in deze reeks publicaties hebben we ons herinnerd hoe we een:

Shell-scripts

En in eerdere versies, hoe u een Shebang en een BSM (Bash Strict Mode / Strict Bash Mode).

Best practices voor het maken van een Shell-script in GNU / Linux - Deel 1

Best practices voor het maken van een Shell-script in GNU / Linux - Deel 2

Hier is een voorbeeld van een Optimalisatiemodule, als voorbeeld een van mijn programma's (applicaties) feiten in een Shell-script riep Linux Post Install - Bicentennial Script 8.0:

Dit zou de module (sectie) moeten zijn om de basispakketten te installeren die nodig zijn voor de goede werking ervan, of om de minimale acties uit te voeren die nodig zijn om de Werkomgeving of Besturingssysteem bij te werken, te onderhouden of uit te voeren zodat alles naar tevredenheid verloopt. Ik voeg persoonlijk de volgende regels toe om deze module te maken:


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

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

Zoals u kunt zien, voert deze module een aptitude-update, gevolgd door het installeren van de pakketten dialoogvenster gxmessage zenity espeak gksu, verdergaand met de bevelopdrachten geschiktheid installeren -f y dpkg - configureer -a. En voor het geval dat en slechts als alles naar tevredenheid is uitgevoerd, een visuele boodschap door terminal van succesvolle afronding met een sonische waarschuwing en ik ging verder met de volgende stap (module / sectie) van het Shell-script. Anders een visuele boodschap door terminal van mislukte realisatie met een sonische waarschuwing, met iemand anders visueel bericht door terminal die handmatige acties aanbeveelt die moeten worden uitgevoerd om de fout opnieuw te vermijden, en voltooi vervolgens de uitvoering van het Shell-script.

Wat betreft de laatste 2 regels van de module, degenen die beginnen met wget-opdracht, voor nu zijn deze niet essentieel, aangezien deze deel uitmaken van een Experimentele procedure aangepast door mij om de stemondersteuning van een Shell-script met internetverbinding via de Google Translate online spraaksynthesizer en haar sensuele vrouwenstem, en vervang zo de synthesizer met robotstem (mannelijk / vrouwelijk) lokaal geleverd door de GNU / Linux-besturingssystemen met de pakketten (programma's) espeak, festival, festvox, mbrola, speech en stardict.

aanbeveling:

LEES HET DOCUMENT: «DE KATHEDRAAL EN DE BAZAAR»

De kathedraal en de bazaar is een soort manifest gemaakt door Eric S. Raymond in het jaar 1.998 om uit te leggen vanuit uw standpunt en persoonlijke ervaring (Oprichting van het programma fetchmail) wat hij waarnam over de succesvolle creatie en evolutie van Linux en zijn gerelateerde programma's, vooral vanuit het perspectief van het verschil tussen de Software-ontwikkelingsmodellen, die hij persoonlijk noemde: Kathedraalmodel en Bazaarmodel.

Mijn samenvattende analyse van dat document is als volgt:

Deze lezing suggereert of presenteert de visie die binnen de wereld van Software engineering er zijn "twee totaal verschillende ontwikkelingsstijlen, kathedraal model, toepasbaar op de meeste ontwikkelingen in de wereld van Commerciële software, vergeleken met bazaar model, meer typerend voor de wereld Linux ". Benadrukkend dat deze 2 modellen zijn afgeleid van tegengestelde uitgangspunten over de aard van het softwarefoutopsporingsproces en van zijn specifieke theorie over wat hij noemde Linus 'wet die het volgende verklaarde: "Als er voldoende ogen zijn, zijn alle fouten niet relevant" of met andere woorden: "Met voldoende ogen zijn alle fouten kleinigheden."

Ook in deze lezing benadrukt de auteur het woord hacker, wat naar mijn mening de auteur uitdrukte als een soort Een gebruiker op hoog niveau die in staat is een programma te begrijpen en efficiënt te exploiteren, en correcties of aanpassingen in een efficiënte vorm en inhoud op te sporen, voor te stellen of door te voeren voor de hele gebruikersgemeenschap. Ik vond dit zelf-voorgestelde concept erg leuk omdat ik denk dat het correct is, maar ik zal er een achterlaten die ik ook erg leuk vind omdat het veel meer globaal en / of generiek is.

hacker

"Linux is subversief." Waarom? Het eerste dat deze lezing ons vertelt, is dat:

Tot dan was er een enorme diversiteit aan gestandaardiseerde softwareontwikkelingsmethoden of -modellen die waren gebaseerd op een "Meer gecentraliseerde en planmatige aanpak vanaf het begin" als gevolg van het feit dat het ontwerpen van Software wordt opgevat als iets dat verband houdt met een x Factor dat leidt tot "Enige kritische complexiteit". En dat ook al bestond dit al in de Unix-wereldMet andere woorden, werk bestaande uit kleine tools, snelle prototyping en evolutionair programmeren, de opkomst van de filosofie van Vrije Software-ontwikkeling onder Linux bracht de zaak naar een ander niveau van verfijning.

Als resultaat hiervan, While Private softwareontwikkeling was gemaakt van "Stille en eerbiedige manier", terwijl je een Catedral, Vrije softwareontwikkeling (Linux) was gemaakt van "drukke manier en met meerdere agenda's (paden) en benaderingen (voorstellen) ", net zoals je was in een geweldige Bazar.

Ten slotte legt het een reeks premissen bloot die het waard zijn om te worden afgebroken en verwerkt in hun juiste context om degenen te begrijpen die zich ontwikkelen voor de gemeenschap van Vrije Software-gebruikers. Deze gebouwen zijn:

  1. ALLE GOEDE WERKZAAMHEDEN IN SOFTWARE BEGINNEN MET EEN PERSOONLIJK PROBLEEM VAN WELKE U ZE PLOEGT.
  2. GOEDE PROGRAMMERS WETEN WAT TE SCHRIJVEN. DE BESTE WETEN WAT TE HERSCHRIJVEN (EN HERGEBRUIKEN).
  3. DENK ER AAN DAT ER MINSTENS ÉÉN UIT WORDT GEGEVEN: JE ZULT HET EINDELIJK DOEN. "
  4. ALS JE DE JUISTE HOUDING HEBT, VINDEN INTERESSANTE PROBLEMEN JE.
  5. WANNEER EEN OPLEIDING U NIET MEER INTERESSANT IS, IS UW LAATSTE PLICHT OM DEZE DOOR TE GEVEN AAN EEN COMPETENTE OPVOLGER.
  6. UW GEBRUIKERS ALS MEDEWERKERS BEHANDELEN, IS DE MINDER INGEWIKKELDE MANIER OM EEN PROGRAMMA SNEL TE VERBETEREN EN EFFECTIEF DEBUTEREN.
  7. LAAT HET BINNENKORT VRIJ. LANCEER HET VAAK. EN LUISTER NAAR UW GEBRUIKERS.
  8. MET EEN RUIM GENOEG BASIS VAN TESTERS EN MEDEWERKERS, ZULLEN BIJNA ALLE PROBLEMEN SNEL WORDEN GEÏDENTIFICEERD EN ZAL HUN OPLOSSING VOOR IEMAND DUIDELIJK ZIJN.

Plus 11 andere resterende premissen die meer van het ontnuchterende type zijn (moreel), die niet bij het verhaal hoort, maar bij wat door elk wordt geïnterpreteerd lezer (ontwikkelaar), wat in mijn zeer specifieke geval me tot de volgende conclusies leidde:

Conclusies

Ik hoop dat je deze informatie leuk vond en dat het sindsdien nuttig is Het lezen van de kathedraal en de bazaar is een verplichte referentie voor iedereen die een ontwikkeling in vrije software programmeert, hoe groot of klein ook.

Later zullen we in toekomstige berichten een voorbeeld blijven zien van modules (secties) die functies uitvoeren zoals:

  • GEBRUIKERSAUTORISATIEMODULE MET WACHTWOORD
  • MODULE VOOR DETECTIE VAN DE ARCHITECTUUR VAN HET BESTURINGSSYSTEEM
  • CODERING TAALCONFIGURATIEMODULE
  • PROXY CONFIGURATIEMODULE VOOR DE UITVOERINGSOMGEVING

Onder vele anderen!

En zoals altijd raad ik aan ga autodidactisch leren over de commando's: gksu, dialoog, gxmessage, zenity, espeak, play, onder vele anderen om grafische interfaces te creëren per terminal of voor het bureaublad van de gebruiker, met sonische of multimedia-waarschuwingen, en voorkennis die ze later zullen gebruiken.

Onthoud dat deze en andere aanbevelingen voor sommige module, functie, variabele, commando of actie in het algemeen kan het worden uitgevoerd vele manieren, en wat hier wordt getoond is niets meer dan een simpele weg, Van de vele mogelijke en waarschijnlijke manieren waarin gezegd actie kan of zou kunnen worden uitgevoerd!

Om het af te maken verlaat ik je, a Screencast gemaakt door mij, om u te laten zien waartoe u in staat zou zijn, nadat u dit hebt voltooid Shell Scripting online cursus in DesdeLinux:

LPI-SB8 Test ScreenCast

(LINUX POST INSTALLEREN - BICENTENNIAL SCRIPT 8.0.0) - Deel 2


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.