Najlepsze praktyki tworzenia skryptu powłoki w systemie GNU / Linux - część 2

Po pierwsze, przed przeczytaniem tej publikacji polecam zapoznać się z tzw część I wspomnianej publikacji, tzw «Najlepsze praktyki tworzenia skryptu powłoki w systemie GNU / Linux".

Skrypty powłoki

Dalej mały podsumowanie z najważniejszego szczęścia poprzedni wpis:

A) Idealny Shebang należy zapisać w następujący sposób:

#!/usr/bin/env bash.

Uwaga: zastępując słowo bash według wybranej skorupy.

B) Aby osiągnąć doskonały STRICT lub SECURE BASH MODE (Bash Strict Mode / BSM) zaoferowaliśmy następujące alternatywy:

B.1) Konfiguracja Sekcji Debugowania:

  1. set -o błąd
  2. set -o rzeczownik
  3. ustaw -o błąd potoku
  4. # ustaw -o xtrace

Jednak w tym nowym wpisie sugerujemy, aby zminimalizować linie kodu, co następuje Ścisły lub BEZPIECZNY TRYB BASH (Tryb Bash Strict / BSM):

set -eou pipefail

Z tym BSM osiągamy dokładnie to samo, co przy poprzednich 3 liniach.

Moja osobista rekomendacja to: Po zbudowaniu skryptu powłoki dodaj wiersze BSM, aby rozpocząć debugowanie i udoskonalanie skryptu, aby był wysoce funkcjonalny. Kiedykolwiek chcesz dodać, powiedziałeś BSM opcja (-X) aby osiągnąć ten sam efekt, co po włączeniu linii: ustaw -o xtrace, w powyższej metodzie, czyli twojej linii BSM To powinno wyglądać tak:

set -eoux pipefail

B.2) Konfiguracja Sekcji Wyjścia skonfigurowanych Zmiennych:

IFS=$'\n\t'

Dodając ten wiersz przystępujemy do rekonfiguracji zmiennej Wewnętrzny separator pól i uzyskać lepszą wizualizację i/lub uchwycenie słów (pól) ciągu znaków. Włącz lub nie, zgodnie z wymaganiami i potrzebami.

Z typową konfiguracją:


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

Wyjścia zmiennych można by uzyskać w następujący sposób:


a
b
c
a b c

Z ustawieniami domyślnymi i zalecanymi:


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

Wyjścia zmiennych można by uzyskać w następujący sposób:


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) Konfiguracja Sekcji domyślnej konfiguracji terminala wykonawczego:

setterm --reset

Dodając tę ​​linię przystępujemy do całkowitego zresetowania całej sesji i parametrów wykonania terminala, w którym korzystanie z Skrypt powłoki wykonany. Włącz lub nie, zgodnie z wymaganiami i potrzebami.

Dzięki temu będziemy mieli ok BSM bardzo przydatne i wydajne, aby mieć doskonałe Skrypt powłoki.

Na koniec zbadamy, co taki skrypt powłoki powinien mieć poniżej:

  • Sekcja informacyjna o Twórcy i Programie:

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

  • Sekcja informacyjna dotycząca Licencjonowania Programu:

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

Mam nadzieję, że z tą drugą częścią „Najlepsze praktyki tworzenia skryptu powłoki w systemie GNU/Linux” Wystarczy, że będą w stanie skupić się dogłębnie na każdym jego małym aspekcie i przyczynie wielu rzeczy podczas tworzenia Skrypt powłoki, to znaczy mam nadzieję, że niektóre z tych wskazówek pomogą ci ulepszyć Skrypt powłoki, ale nie tyle dla siebie, co dla tamtych Użytkownicy o Sysadmin musisz nimi zarządzać. Żebyś nie musiał przechodzić np żmudne i trudne zadanie de dowiedzieć się, co zakodowali, jak i dlaczego oraz dlaczego to już nie działa.

Do następnych postów o Shell Scripting!


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.