Millors pràctiques per crear un Script de Shell a GNU / Linux - Part 2

Primerament, abans de llegir aquesta publicació et recomano llegir la part I d'aquesta publicació, anomenada «Millors pràctiques per crear un Script de Shell a GNU / Linux".

Shell ScriptingSeguidament, un petit resum del més important d'aquesta entrada anterior:

A) El shebang ideal hauria d'escriure de la següent manera:

#! / Usr / bin / env bash.

Nota: Reemplaçant la paraula colpejar pel shell de la seva preferència.

B) Per aconseguir un excel·lent MANERA BASH ESTRICTE o SEGUR (Bash Strict Mode / BSM) vam oferir les següents alternatives:

B.1) Configuració de la Secció de Depuració d'errors:

  1. setembre -o errexit
  2. setembre -o nounset
  3. setembre -o pipefail
  4. # Setembre -o xtrace

No obstant això, en aquesta nova entrada suggerim en pro de minimitzar les línies de codi el següent MANERA BASH ESTRICTE o SEGUR (Bash Strict Mode / BSM):

set -eou pipefail

Amb aquest BSM vam aconseguir exactament el mateix que amb les 3 línies anteriors.

La meva recomanació personal és: Un cop construït el seu Script de Shell, afegiu la (s) línies de l'BSM per començar a depurar i perfeccionar el seu Script i deixar-ho altament funcional. Quan ho desitgi afegiu ha dit BSM l'opció (-X) per aconseguir el mateix efecte que quan habilita la línia: setembre -o xtrace, En el mètode anterior, és a dir, la seva línia de BSM hauria de quedar així:

set -eoux pipefail

B.2) Configuració de la Secció de la Sortida de les Variables configurades:

IFS=$'\n\t'

Si afegim aquesta línia procedim ha reconfigurar la variable Internal Field Separator (Separador de camp intern) i aconseguir una millor visualització i / o captura de les paraules (camps) d'una cadena de caràcters. D'habilitar o no, segons els seus requeriments i necessitats.

Amb aquestes configuració típiques:


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

Es obtindrien les sortides de les variables de la següent manera:


a
b
c
a b c

Amb la configuració per defecte i recomanada:


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

Es obtindrien les sortides de les variables de la següent manera:


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) Configuració de la Secció de la configuració per defecte de l'terminal d'execució:

setterm --reset

Si afegim aquesta línia procedim ha resetejar per complet tota la sessió i els paràmetres d'execució de l'terminal on s'invoca l'ús de l' Script de Shell executat. D'habilitar o no, segons els seus requeriments i necessitats.

Amb això tindrem un BSM molt utíl i eficient per tenir un excel·lent Script de Shell.

Per últim, explorarem el que ha continuació hauria de tenir dit Script d'Shell:

  • Una Secció de informativa sobre el Creador i el Programa:

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

 

  • Una secció informativa sobre el Llicenciament de el Programa:

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

Espero que amb aquesta segona part de les "Millors pràctiques per crear un Script de Shell a GNU / Linux" els sigui suficient perquè aconsegueixin enfocar-se a fons en cada petit aspecte dels mateix i el perquè de moltes coses a l'hora de crear un Script de Shell, És a dir, espero que alguns d'aquests consells els ajudin a l'hora de realitzar millors Script de Shell, Però no tant per a vostès mateix, sinó per a aquells Usuaris o SysAdmin que hagi de gestionar-los. Perquè així no hagi de passar per una tediosa i difícil tasca de esbrinar que van codificar, com i per què, i per què ja no funciona.

Fins a les properes publicacions sobre Shell Scripting!


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà.

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.