GNU / Linux-те Shell сценарийін құрудың үздік тәжірибелері - 2 бөлім

Ең алдымен, осы басылымды оқымас бұрын, сізге оқуды ұсынамын I бөлім аталған басылымның, деп аталады «Shell сценарийін GNU / Linux-те құрудың үздік тәжірибелері«.

Қабық сценарийКелесі, кішкентай қорытынды бақыттың ең маңыздысы алдыңғы жазба:

A) Идеал оны келесідей жазу керек:

#! / usr / bin / env bash.

Ескерту: Сөзді ауыстыру bash сіздің қалауыңыз бойынша.

B) Жақсы жетістікке жету үшін STRICT немесе SAFE BASH MOD (Bash қатаң режимі / BSM) біз келесі баламаларды ұсынамыз:

B.1) Жөндеу бөлімінің конфигурациясы:

  1. орнату -o errexit
  2. set -o зат есім
  3. труба құбырын орнату
  4. # жиын -o xtrace

Алайда, осы жаңа жазбада код жолдарын азайту үшін біз келесіні ұсынамыз BASH STRICT немесе ҚАУІПСІЗ РЕЖИМ (Bash қатаң режимі / BSM):

set -eou pipefail

Осы арқылы BSM біз алдыңғы 3 жолмен дәл осындай нәтижеге қол жеткіземіз.

Менің жеке ұсынысым: Shell сценарийі салынғаннан кейін, сценарийді түзетуді және жетілдіруді және оны жоғары функционалды етуді бастау үшін 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

Осы жолды қосқанда біз бүкіл сеансты және терминалдың орындалу параметрлерін толығымен қалпына келтіреміз Shell сценарийі орындалды. Сіздің талаптарыңыз бен қажеттіліктеріңізге сәйкес оны қосыңыз немесе жасамаңыз.

Бұл бізде болады BSM өте жақсы және тиімді болу үшін Shell сценарийі.

Соңында, Shell сценарийінде не болуы керек екенін қарастырамыз:

  • Жаратушы және Бағдарлама туралы ақпараттық бөлім:

###########################################################
# 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-те Shell сценарийін құрудың үздік тәжірибелері» а-ны құрған кезде оның әр кішкене аспектісіне және көптеген себептерге мұқият назар аудара алуы үшін жеткілікті Shell сценарийіяғни жақсартуға келгенде осы кеңестердің кейбірі сізге көмектеседі деп үміттенемін Shell сценарийі, бірақ өзіңіз үшін емес, сол үшін Пайдаланушылар o SysAdmin оларды басқару керек. А-дан өтудің қажеті жоқ жалықтыратын және қиын тапсырма de олардың нені, қалай және неге кодтағанын және неге ол жұмыс істемейтінін біліңіз.

Shell сценарийіндегі келесі жазбаларға дейін!


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

Бірінші болып пікір айтыңыз

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады.

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.