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

În primul rând, înainte de a citi această publicație, vă recomand să citiți partea I din publicația menționată, numită «Cele mai bune practici pentru a crea un script Shell în GNU / Linux“.

shell a Scripting

Apoi, un mic rezumat dintre cele mai importante ale fericirii intrarea anterioară:

A) Shebang ideal ar trebui să fie scris după cum urmează:

#! / usr / bin / env bash.

Nota: Înlocuind cuvântul pocni după cochilia la alegere.

B) Pentru a obține un excelent STRICT sau SAFE BASH MODE (Bash Strict Mode / BSM) oferim următoarele alternative:

B.1) Configurarea secțiunii de depanare:

  1. set -o ridicat
  2. set -o substantiv
  3. set -o pipefail
  4. # set -o xtrace

Cu toate acestea, în această nouă intrare vă sugerăm pentru a minimiza liniile de cod următoarele BASH STRICT sau SAFE MODE (Bash Strict Mode / BSM):

set -eou pipefail

Cu acest BSM realizăm exact la fel ca și cu cele 3 rânduri anterioare.

Recomandarea mea personală este: Odată ce scriptul dvs. Shell este construit, adăugați linia (liniile) BSM pentru a începe depanarea și perfecționarea scriptului și pentru a-l face foarte funcțional. Când doriți, adăugați a spus BSM opțiunea (-X) pentru a obține același efect ca atunci când activați linia: set -o xtrace, în metoda de mai sus, adică linia dvs. de BSM ar trebui să arate așa:

set -eoux pipefail

B.2) Configurarea secțiunii de ieșire a variabilelor configurate:

IFS=$'\n\t'

Adăugând această linie procedăm la reconfigurarea variabilei Separator de câmp intern și să obțină o mai bună vizualizare și / sau captare a cuvintelor (câmpurilor) unui șir de caractere. Activați-l sau nu, conform cerințelor și nevoilor dvs.

Cu aceste setări tipice:


    #!/bin/bash
    IFS=$' '
    items="a b c"
    for x in $items; do
        echo "$x"
    done

    IFS=$'\n'
    for y in $items; do
        echo "$y"
    done

Rezultatele variabilelor ar fi obținute în modul următor:


a
b
c
a b c

Cu setările implicite și recomandate:


    #!/bin/bash
    names=(
      "Aaron Maxwell"
      "Wayne Gretzky"
      "David Beckham"
      "Anderson da Silva"
    )

    echo "Con el valor por defecto de la variable IFS..."
    for name in ${names[@]}; do
      echo "$name"
    done

    echo ""
    echo "Con el Modo BSM para el valor de la variable IFS activado..."
    IFS=$'\n\t'
    for name in ${names[@]}; do
      echo "$name"
    done

Rezultatele variabilelor ar fi obținute în modul următor:


Con el valor por defecto de la variable IFS...
Aaron
Maxwell
Wayne
Gretzky
David
Beckham
Anderson
da
Silva

Con el Modo BSM para el valor de la variable IFS activado...
Aaron Maxwell
Wayne Gretzky
David Beckham
Anderson da Silva

B.3) Secțiunea de configurare a configurației implicite a terminalului de execuție:

setterm --reset

Prin adăugarea acestei linii procedăm la resetarea completă a întregii sesiuni și a parametrilor de execuție ai terminalului în care se utilizează Script Shell executat. Activați-l sau nu, conform cerințelor și nevoilor dvs.

Cu aceasta vom avea o BSM foarte util și eficient pentru a avea un excelent Script Shell.

În cele din urmă, vom explora ce ar trebui să aibă acel Shell Script mai jos:

  • O secțiune informativă despre Creator și Program:

###########################################################
# SECCIÓN INFORMATIVA SOBRE EL CREADOR Y EL PROGRAMA
###########################################################

###########################################################
#                             MI PAÍS 
#
# NOMBRE: 
# VERSIÓN: 
# TIPO DE PROGRAMA:
# FUNCIÓN:
# NOMBRE CÓDIGO:
# PAÍS ORIGEN:
# CREADO POR:
# EMAIL:
# NOMBRE FACEBOOK:
# PAGINA PERSONAL FACEBOOK:
# COMUNIDAD FACEBOOK:
# TWITTER:
# TELÉFONO:
# PROMOCIONADO POR:
# PAGINA WEB DEL PROYECTO TIC - TAC:
# FECHA DE LANZAMIENTO DE LA PRIMERA VERSIÓN (1.0):
# FECHA DE LANZAMIENTO DE LA VERSIÓN ACTUAL (8.0+0):
# FECHA DE ULTIMA ACTUALIZACIÓN:
###########################################################

  • O secțiune informativă despre licențierea programului:

###########################################################
# SECCIÓN INFORMATIVA SOBRE EL LICENCIAMIENTO DEL PROGRAMA
###########################################################

###########################################################
# NOMBRE DEL SCRIPT DE SHELL
###########################################################
#
# Derechos de autor:
# Copyleft (C) Año - Creador
# 
# Licenciamiento:
#
# El NOMBRE DEL SCRIPT DE SHELL no viene con ninguna garantía. El 
# Autor no se hace responsable si se al aplicarse el S.O., se
# corrompe, daña o inutiliza.
#
# El NOMBRE DEL SCRIPT DE SHELL es una aplicación de Software 
# Libre, por lo tanto usted puede redistribuirlo y / o modificarlo 
# bajo los términos de la Licencia Pública General de GNU
# publicada por la free Software Foundation, o sea, la versión 3
# ó versión posterior, según sea su preferencia.
#
# Este programa se distribuye con la esperanza de que sea útil,
# pero SIN NINGUNA GARANTÍA, incluso sin la garantía implícita de
# COMERCIALIZACIÓN o IDONEIDAD para un propósito particular.
# Vea la Licencia Publica General para más detalles.
#
# Procure obtener una copia de la Licencia Pública General de GNU
# para estar al tanto sobre lo estipulado por la misma.
#
# Consúltela en:
#
# http://www.gnu.org/licenses/licenses.es.html
# http://www.gnu.org/licenses/license-list.html
# http://www.gnu.org/licenses/gpl-howto.es.html
# http://www.gnu.org/help/evaluation.html
# http://www.gnu.org/licenses/gpl-3.0.html#howto
#
# Más Información:
#
# http://www.creativecommonsvenezuela.org.ve/cc-licencias
# http://creativecommons.org/choose/?lang=es_ES
#
# Por lo tanto, Si usted hace alguna modificación en esta
# aplicación o toma una porción de él, deberá siempre mencionar al
# autor original de la misma:
#
# Desarrollador : 
# Nick          : 
# Twitter       : 
# Facebook      : 
# Telegram      : 
# Canal Telegram:
#
# Este SCRIPT tiene como propósito:
#
# 1.- PROPÓSITO 1: ABCDEFGHIJKLMNÑOPQRSTUVXYZ
#
# 2.- PROPÓSITO 2: ABCDEFGHIJKLMNÑOPQRSTUVXYZ
#
############################################################
# NOMBRE DEL SCRIPT DE SHELL
############################################################

Sper că prin această a doua parte a „Cele mai bune practici pentru a crea un script Shell în GNU / Linux” este suficient pentru ca aceștia să se poată concentra cu atenție asupra fiecărui aspect mic și a motivului pentru multe lucruri atunci când creează un Script Shelladică sper că unele dintre aceste sfaturi vă vor ajuta atunci când vine vorba de a face mai bine Script Shell, dar nu atât pentru tine, cât pentru aceștia Utilizatori o SysAdmin trebuie să le gestionezi. Ca să nu trebuie să treci printr-un sarcină plictisitoare și dificilă de aflați ce au codat, cum și de ce și de ce nu mai funcționează.

Până la următoarele postări pe Shell Scripting!


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.