Най-добри практики за създаване на Shell Script в GNU / Linux - Част 2

Преди всичко, преди да прочетете тази публикация, ви препоръчвам да прочетете част I на споменатата публикация, наречена «Най-добри практики за създаване на Shell Script в GNU / Linux".

Скрипт на Shell

След това, малък resumen от най-важното за щастието предишен запис:

А) Идеалният Shebang трябва да се напише, както следва:

#! / usr / bin / env bash.

Забележка: Замяна на думата тряскам от черупката по ваш избор.

B) За постигане на отличен STRICT или SAFE BASH MODE (Bash Strict Mode / BSM) предлагаме следните алтернативи:

Б.1) Конфигурация на раздела за отстраняване на грешки:

  1. набор -o повдигнат
  2. set -o съществително име
  3. set -o pipefail
  4. # set -o xtrace

Въпреки това, в този нов запис ние предлагаме, за да сведем до минимум редовете на кода, следното BASH STRICT или SAFE MODE (Bash Strict Mode / BSM):

set -eou pipefail

с тази BSM постигаме точно същото като при предишните 3 реда.

Моята лична препоръка е: След като вашият Shell Script е изграден, добавете BSM линия (и), за да започнете да отстранявате грешки и да усъвършенствате вашия Script и да го правите много функционален. Когато искате, добавете каза BSM опция (-х) за да постигнете същия ефект, както когато активирате линията: задайте -o xtrace, в горния метод, тоест вашата линия от BSM трябва да изглежда така:

set -eoux pipefail

Б.2) Конфигуриране на изходния раздел на конфигурираните променливи:

IFS=$'\n\t'

Добавяйки този ред, ние пристъпваме към преконфигуриране на променливата Вътрешен разделител на поле и постигнете по-добра визуализация и / или улавяне на думите (полетата) на символен низ. Активирайте го или не, според вашите изисквания и нужди.

С тези типични настройки:


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

Резултатите от променливите ще бъдат получени по следния начин:


a
b
c
a b c

Със стандартните и препоръчителни настройки:


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

Резултатите от променливите ще бъдат получени по следния начин:


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

Б.3) Конфигурационен раздел на конфигурацията по подразбиране на изпълнителния терминал:

setterm --reset

Чрез добавяне на този ред пристъпваме към пълно нулиране на цялата сесия и параметрите на изпълнение на терминала, където се използва Shell сценарий изпълнен. Активирайте го или не, според вашите изисквания и нужди.

С това ще имаме BSM много полезно и ефективно да има отличен Shell сценарий.

Накрая ще проучим какво трябва да има този Shell Script по-долу:

  • Информативен раздел за създателя и програмата:

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

  • Информативен раздел за лицензиране на програмата:

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

Надявам се, че с тази втора част на „Най-добри практики за създаване на Shell Script в GNU / Linux“ е достатъчно, за да могат да се съсредоточат изцяло върху всеки малък аспект от него и причината за много неща при създаването на Shell сценарийтоест, надявам се, че някои от тези съвети ще ви помогнат, когато става въпрос за подобряване Shell сценарий, но не толкова за себе си, колкото за тези потребители o Сисадмин трябва да ги управлявате. За да не се налага да преминавате през досадна и трудна задача de разберете какво са кодирали, как и защо и защо вече не работи.

До следващите публикации в Shell Scripting!


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.