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

Tout d'abord, avant de lire cette publication, je vous recommande de lire le partie I de ladite publication, appelée «Meilleures pratiques pour créer un script Shell sous GNU / Linux«.

Shell Scripting

Ensuite, un petit Resumen du plus important du bonheur entrée précédente:

A) Le Shebang idéal il doit être écrit comme suit:

#! / usr / bin / env bash.

Observation: Remplacer le mot bash par la coque de votre choix.

B) Pour atteindre un excellent STRICT ou SAFE BASH MODE (Bash Strict Mode / BSM) nous proposons les alternatives suivantes:

B.1) Configuration de la section de débogage:

  1. set -o élevé
  2. set -o substantif
  3. set -o échec du tuyau
  4. # set -o xtrace

Cependant, dans cette nouvelle entrée, nous suggérons afin de minimiser les lignes de code: BASH STRICT ou SAFE MODE (Mode Bash Strict / BSM):

set -eou pipefail

Avec cette BSM nous obtenons exactement la même chose qu'avec les 3 lignes précédentes.

Ma recommandation personnelle est: Une fois votre script Shell construit, ajoutez la ou les lignes BSM pour démarrer le débogage et perfectionner votre script et le rendre hautement fonctionnel. Quand tu veux, ajoute dit BSM l'option (-X) pour obtenir le même effet que lorsque vous activez la ligne: définir -o xtrace, dans la méthode ci-dessus, c'est-à-dire votre ligne de BSM ça devrait ressembler à ça:

set -eoux pipefail

B.2) Configuration de la section de sortie des variables configurées:

IFS=$'\n\t'

En ajoutant cette ligne, nous procédons à la reconfiguration de la variable Séparateur de champ interne et obtenir une meilleure visualisation et / ou capture des mots (champs) d'une chaîne de caractères. Activez-le ou non, selon vos exigences et vos besoins.

Avec ces paramètres typiques:


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

Les sorties des variables seraient obtenues de la manière suivante:


a
b
c
a b c

Avec les paramètres par défaut et recommandés:


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

Les sorties des variables seraient obtenues de la manière suivante:


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) Section Configuration de la configuration par défaut du terminal d'exécution:

setterm --reset

En ajoutant cette ligne, nous procédons à la réinitialisation complète de la session entière et des paramètres d'exécution du terminal où l'utilisation du Script shell réalisé. Activez-le ou non, selon vos exigences et vos besoins.

Avec cela, nous aurons un BSM très utile et efficace pour avoir un excellent Script shell.

Enfin, nous allons explorer ce que ce script Shell devrait avoir ci-dessous:

  • Une section informative sur le créateur et le programme:

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

  • Une section informative sur la licence du programme:

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

J'espère qu'avec cette deuxième partie du "Meilleures pratiques pour créer un script Shell sous GNU / Linux" est suffisant pour qu'ils puissent se concentrer à fond sur chaque petit aspect de celui-ci et la raison de beaucoup de choses lors de la création d'un Script shellc'est-à-dire que j'espère que certains de ces conseils vous aideront à améliorer Script shell, mais pas tant pour vous, mais pour ceux Utilisateurs o SysAdmin vous devez les gérer. Pour que vous n'ayez pas à passer par un tâche fastidieuse et difficile de découvrez ce qu'ils ont codé, comment et pourquoi et pourquoi cela ne fonctionne plus.

Jusqu'aux prochains articles sur Shell Scripting!


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.