Construiți-vă programul pas cu pas folosind Shell Scripting - Partea 4

În intrările anterioare din această serie de publicații, ne-am amintit cum să implementăm un:

shell a Scripting

Și în cele anterioare, cum să implementați un Shebang și un BSM (Bash Strict Mode / Strict Bash Mode).

Cele mai bune practici pentru a crea un script Shell în GNU / Linux - Partea 1

Cele mai bune practici pentru a crea un script Shell în GNU / Linux - Partea 2

Iată un exemplu de Modul de optimizare, luând ca exemplu unul dintre ale mele programe (aplicații) fapte într-o Script Shell denumit Linux Post Install - Bicentennial Script 8.0:

Acesta ar trebui să fie modulul (secțiunea) să instaleze pachetele de bază necesare pentru buna funcționare a acestora sau să execute acțiunile minime necesare pentru actualizarea, întreținerea sau efectuarea mediului de lucru sau a sistemului de operare, astfel încât totul să ruleze în mod satisfăcător. Personal adaug următoarele linii pentru a crea acest modul:


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

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

După cum puteți vedea, acest modul rulează un actualizare aptitude, urmat de instalarea pachetelor dialog gxmessage zenity speak gksu, continuând cu comenzile de comandă aptitude install -f y dpkg --configure -a. Și în cazul în care și numai dacă totul a fost executat în mod satisfăcător, a mesaj vizual prin terminal de finalizare cu succes cu un alertă sonoră și am continuat cu următorul pas (modul / secțiune) din Script Shell. În caz contrar, a mesaj vizual prin terminal de realizare nereușită cu un alertă sonoră, cu altul mesaj vizual de terminal recomandând acțiuni manuale care trebuie executate pentru a evita din nou eroarea, și apoi terminați execuția Script Shell.

În ceea ce privește ultimele 2 linii ale modulului, cele care încep cu comanda wget, deocamdată acestea nu sunt esențiale, deoarece acestea fac parte dintr-un procedura experimentala adaptat de mine pentru a realiza sprijinul vocal al unui Script Shell cu conexiune la internet folosind Google Translate sintetizator de vorbire online și vocea ei feminină senzuală, și înlocuiți astfel sintetizator cu voce robotizată (masculin / feminin) furnizat local de sistemele de operare GNU / Linux cu pachetele (programele) vorbește, festival, festvox, mbrola, discurs și stardict.

recomandare:

CITIȚI DOCUMENTUL: «CATEDRALA ȘI BAZARUL»

Catedrala și Bazarul este un fel de manifest creat de Eric S Raymond în acest an 1.998 pentru a încerca să explic din punctul tău de vedere și experiența personală (crearea programului fetchmail) ceea ce a perceput despre crearea și evoluția cu succes a Linux și a programelor sale conexe, în special din perspectiva diferenței dintre Modele de dezvoltare software, pe care l-a numit personal: Modelul catedralei și modelul bazarului.

Analiza mea sumară a acelui document este după cum urmează:

Această lectură sugerează sau prezintă viziunea care în interiorul lumii Inginerie software există „două stiluri de dezvoltare complet diferite, model de catedrală, aplicabil majorității dezvoltărilor efectuate în lumea software comercial, în fața model de bazar, mai tipic lumii Linux ". Subliniind că aceste 2 modele sunt derivate din puncte de plecare opuse asupra naturii procesului de depanare a software-ului și din teoria sa particulară despre ceea ce el a numit Legea lui Linus care a declarat următoarele: „Având în vedere un număr suficient de ochi, toate erorile sunt irelevante” sau cu alte cuvinte: „Cu un număr suficient de ochi, toate greșelile sunt fleacuri”.

Tot în această lectură autorul subliniază cuvântul hacker, pe care în opinia mea autorul le-a exprimat ca un fel de Utilizator la nivel înalt capabil să înțeleagă și să exploateze eficient un program și să detecteze, să sugereze sau să implementeze corecții sau modificări în formă și substanță eficiente pentru întreaga comunitate de utilizatori. Mi-a plăcut mult acest concept auto-sugerat, deoarece cred că este corect, cu toate acestea, voi lăsa unul care îmi place și mie, deoarece este mult mai global și / sau generic.

hacker

„Linux este subversiv”. De ce? Primul lucru care ne spune această lectură este că:

Până atunci exista o mare diversitate de metode sau modele standardizate de dezvoltare software care se bazau pe un „Abordare mai centralizată și planificată de la început” ca urmare a faptului că proiectul de software este luat ca ceva legat de un factorul X care duce la „O oarecare complexitate critică”. Și asta, deși acest lucru exista deja în Lumea UnixCu alte cuvinte, lucrarea constând din instrumente mici, dezvoltarea rapidă a prototipurilor și programarea evolutivă, apariția filozofiei de dezvoltare a software-ului liber sub Linux a dus problema la un alt nivel de sofisticare.

Ca urmare a acestui fapt, While Dezvoltare de software privat a fost făcut din „Mod silențios și reverent”, pe măsură ce construiți un Catedrală, Dezvoltare software gratuită (Linux) a fost facut din "mod plin de viață și cu agende multiple (căi) și abordări (propuneri) ”, la fel cum ai fost într-o mare Bazar.

În cele din urmă, expune o serie de premise care merită descompuse și digerate în contextul lor adecvat pentru a înțelege pe cei care se dezvoltă pentru Comunitatea utilizatorilor de software liber. Aceste premise sunt:

  1. TOATE LOCURILE BUNE DIN SOFTWARE ÎNCEPE ÎNCERCAREA DE A VĂ RUGĂI O PROBLEMĂ PERSONALĂ DIN CARE LE PLANIFICAȚI.
  2. BUNI PROGRAMATORI ȘTII CE SĂ SCRIM. CEL MAI MARE ȘTI CE SĂ RESCRIBI (ȘI REUTILIZEAZĂ).
  3. GÂNDIȚI-VĂ SĂ DISPUNEȚI CEL MAI MIC UNUL: VEȚI TERMINA FĂCÂND Oricum. "
  4. DACĂ AȚI ATITUDINEA DREPTĂ, VĂ GĂSEȘTE PROBLEME INTERESANTE.
  5. CÂND UN PROGRAM NU TE MAI INTERESEAZĂ, ULTIMA DATORIE ESTE DE A-L TRANSMITEA LA UN SUCCESOR COMPETENT.
  6. TRATAREA UTILIZATORILOR CA COLABORATORI ESTE MODUL MAI MIC COMPLICAT DE A ÎMBUNĂTĂȚI RAPID ȘI DEBATA EFICAC UN PROGRAM.
  7. ELIBERAȚI-L ÎN curând. LANSAȚI-L DESI. ȘI ASCULTAȚI-VĂ UTILIZATORII.
  8. DATURI O BAZĂ LARGĂ SUFICIENTĂ DE TESTATORI ȘI CONTRIBUITORI, APROAPE TOATE PROBLEMELE VOR FI IDENTIFICATE RAPID ȘI Soluția lor va fi evidentă pentru cineva.

În plus, alte 11 premise rămase, care sunt mai mult de tipul suprem (moral), care nu vine cu povestea ci cu ceea ce este interpretat de fiecare cititor (dezvoltator), care, în cazul meu particular, m-a condus la următoarele concluzii:

Concluzii

Sper că ți-au plăcut aceste informații și vor fi utile, deoarece Lectura catedralei și a bazarului este o referință obligatorie pentru toți cei care programează orice dezvoltare în software liber, oricât de mare sau de mic ar fi.

Mai târziu, în postările viitoare vom vedea în continuare un exemplu de module (secțiuni) care îndeplinesc funcții precum:

  • MODULUL DE AUTORIZARE A UTILIZATORULUI CU PAROLĂ
  • MODUL DE DETECTARE A ARHITECTURII SISTEMULUI DE OPERARE
  • MODULUL DE CONFIGURARE A LIMBII DE CODARE
  • MODUL DE CONFIGURARE PROXY PENTRU MEDIUL DE EXECUTARE

Printre multe altele!

Și ca întotdeauna, recomand mergi să înveți într-un mod autodidact despre comenzi: gksu, dialog, gxmessage, zenity, speak, play, printre multe altele pentru a crea interfețe grafice prin Terminal sau pentru Desktopul utilizatorului, cu alerte sonore sau multimedia, și avansați cunoștințele pe care le vor folosi mai târziu.

Amintiți-vă că acestea și orice alte recomandări referitoare la unele modul, funcție, variabilă, comandă sau acțiune în general se poate realiza multe feluri, iar ceea ce este prezentat aici este doar unul calea usoara, Din multe modalități posibile și probabile în care a spus acțiunea poate sau poate fi efectuată!

Doar pentru a termina te las, a Screencast realizat de mine, pentru a vă arăta de ce ați fi capabil, după ce ați terminat acest lucru Curs online de Shell Scripting în DesdeLinux:

Test ScreenCast LPI-SB8

(LINUX POST INSTALL - SCRIPT BICENTENAR 8.0.0) - Partea 2


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.