Melhores práticas para criar um Shell Script no GNU / Linux - Parte 2

Antes de tudo, antes de ler esta publicação, recomendo que você leia o parte I da referida publicação, chamada «Melhores práticas para criar um Shell Script em GNU / Linux".

Shell Scripting

Em seguida, um pequeno abstrato do mais importante da felicidade postagem anterior:

A) O Shebang ideal deve ser escrito da seguinte forma:

#! / usr / bin / env bash.

Nota: Substituindo a palavra bater pela concha de sua escolha.

B) Para alcançar um excelente MODO STRICT ou SAFE BASH (Bash Strict Mode / BSM), oferecemos as seguintes alternativas:

B.1) Configuração da Seção de Depuração:

  1. set -o errexit
  2. set -o substantivo
  3. set -o pipefail
  4. #set -o xtrace

No entanto, nesta nova entrada, sugerimos, a fim de minimizar as linhas de código, o seguinte BASH STRICT ou SAFE MODE (Bash Strict Mode / BSM):

set -eou pipefail

Com esta BSM alcançamos exatamente o mesmo que com as 3 linhas anteriores.

Minha recomendação pessoal é: Uma vez que o Shell Script é construído, adicione a (s) linha (s) BSM para começar a depurar e aperfeiçoar seu Script e torná-lo altamente funcional. Quando quiser, adicione disse BSM a opção (-x) para obter o mesmo efeito de quando você ativa a linha: definir -o xtrace, no método acima, ou seja, sua linha de BSM deve ser assim:

set -eoux pipefail

B.2) Configuração da Seção de Saída das Variáveis ​​configuradas:

IFS=$'\n\t'

Adicionando esta linha, procedemos para reconfigurar a variável Separador de campo interno e obter uma melhor visualização e / ou captura das palavras (campos) de uma sequência de caracteres. Habilite ou não, de acordo com suas necessidades e necessidades.

Com essas configurações típicas:


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

As saídas das variáveis ​​seriam obtidas da seguinte forma:


a
b
c
a b c

Com as configurações padrão e recomendadas:


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

As saídas das variáveis ​​seriam obtidas da seguinte forma:


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) Seção de configuração da configuração padrão do terminal de execução:

setterm --reset

Adicionando esta linha, procedemos para reiniciar completamente toda a sessão e os parâmetros de execução do terminal onde o Script shell executado. Habilite ou não, de acordo com suas necessidades e necessidades.

Com isso teremos um BSM muito útil e eficiente para ter um excelente Script shell.

Finalmente, exploraremos o que esse Shell Script deve ter a seguir:

  • Uma seção informativa sobre o Criador e o 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:
###########################################################

  • Uma seção informativa sobre o Licenciamento do 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 com esta segunda parte do "Melhores práticas para criar um Shell Script em GNU / Linux" é o suficiente para que eles sejam capazes de se concentrar completamente em cada pequeno aspecto dele e na razão de muitas coisas ao criar um Script shellisto é, espero que algumas dessas dicas ajudem você a melhorar Script shell, mas não tanto para você, mas para aqueles Usuários o Sysadmin você tem que gerenciá-los. Para que você não tenha que passar por um tarefa tediosa e difícil de descubra o que eles codificaram, como e por quê e por que não funciona mais.

Até os próximos posts sobre Shell Scripting!


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.