Лучшие практики для создания сценария оболочки в GNU / Linux - Часть 2

Прежде всего, перед чтением данной публикации я рекомендую вам прочитать часть I указанного издания, названного «Лучшие практики для создания сценария оболочки в GNU / Linux».

Скрипты оболочки

Далее небольшой Resumen самого важного счастья предыдущая запись:

А) Идеальный Шебанг его следует записать следующим образом:

#! / usr / bin / env bash.

Примечание: Замена слова колотить оболочкой по вашему выбору.

B) Чтобы добиться отличного STRICT или SAFE BASH MODE (строгий режим Bash / BSM) мы предлагаем следующие альтернативы:

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

  1. установить -o errexit
  2. set -o существительное
  3. установить -o pipefail
  4. # установить -o xtrace

Однако в этой новой записи мы предлагаем, чтобы минимизировать количество строк кода, следующие BASH STRICT или SAFE MODE (строгий режим Bash / BSM):

set -eou pipefail

С этой BSM мы добиваемся того же, что и предыдущие 3 строки.

Моя личная рекомендация: После создания сценария оболочки добавьте строку (строки) BSM, чтобы начать отладку и усовершенствовать сценарий, сделав его высокофункциональным. Когда захочешь, добавь сказал BSM вариант (-Икс) для достижения того же эффекта, что и при включении строки: установить -o xtrace, в приведенном выше методе, то есть ваша строка BSM это должно выглядеть так:

set -eoux pipefail

B.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

B.3) Раздел конфигурации стандартной конфигурации исполнительного терминала:

setterm --reset

Добавляя эту строку, мы переходим к полному сбросу всего сеанса и параметров выполнения терминала, в котором используется Сценарий оболочки выполнен. Включите его или нет, в зависимости от ваших требований и потребностей.

С этим у нас будет BSM очень полезно и эффективно иметь отличный Сценарий оболочки.

Наконец, мы рассмотрим, что должен иметь этот сценарий оболочки ниже:

  • Информативный раздел о Создателе и Программе:

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

Я надеюсь, что с этой второй частью «Лучшие практики для создания сценария оболочки в GNU / Linux» достаточно, чтобы они могли полностью сосредоточиться на каждом мелком аспекте и причинах многих вещей при создании Сценарий оболочкито есть я надеюсь, что некоторые из этих советов помогут вам, когда дело доходит до улучшения Сценарий оболочки, но не столько для себя, сколько для тех Пользователи o Сисадмин вы должны управлять ими. Чтобы вам не пришлось проходить через утомительная и трудная задача de узнать, что они закодировали, как и почему, и почему это больше не работает.

До следующих сообщений о сценариях оболочки!


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

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