Labākā prakse, lai izveidotu čaulas skriptu GNU / Linux - 2. daļa

Pirmkārt, pirms lasāt šo publikāciju, iesaku izlasīt I daļa no minētās publikācijas, saukta «Labākā prakse, lai izveidotu čaulas skriptu GNU / Linux".

Shell skriptiTālāk mazs kopsavilkums no vissvarīgākās laimes iepriekšējais ieraksts:

A) Ideāls Šebangs tas jāraksta šādi:

#! / usr / bin / env bash.

Piezīme: Vārda aizstāšana stipri iesist pēc jūsu izvēlētā apvalka.

B) Lai sasniegtu izcilu STRICT vai SAFE BASH MODE (Bash Strict Mode / BSM) mēs piedāvājam šādas alternatīvas:

B.1) Atkļūdošanas sadaļas konfigurācija:

  1. set -o errexit
  2. set -o lietvārds
  3. set -o pipefail
  4. # set -o xtrace

Tomēr šajā jaunajā ierakstā mēs iesakām, lai samazinātu koda rindas, šādi BASH STRICT vai SAFE MODE (Bash Strict Mode / BSM):

set -eou pipefail

Ar šo BSM mēs sasniedzam tieši to pašu, kas ar iepriekšējām 3 līnijām.

Mans personīgais ieteikums ir: Kad jūsu Shell skripts ir izveidots, pievienojiet BSM līniju (-es), lai sāktu skriptu atkļūdošanu un pilnveidošanu un padarītu to ļoti funkcionālu. Kad vēlaties, pievienojiet teikto BSM variants (-x) lai sasniegtu tādu pašu efektu kā tad, kad iespējojat līniju: iestatiet -o xtrace, izmantojot iepriekšminēto metodi, tas ir, jūsu līniju BSM tam vajadzētu izskatīties šādi:

set -eoux pipefail

B.2) Konfigurēto mainīgo sadaļas Output konfigurācija:

IFS=$'\n\t'

Pievienojot šo rindu, mēs pārkonfigurējam mainīgo Iekšējais lauka atdalītājs un panākt labāku rakstzīmju virknes vārdu (lauku) vizualizāciju un / vai tveršanu. Iespējojiet to vai ne, atbilstoši savām prasībām un vajadzībām.

Izmantojot šos tipiskos iestatījumus:


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

Mainīgo lielumus iegūst šādi:


a
b
c
a b c

Ar noklusējuma un ieteicamajiem iestatījumiem:


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

Mainīgo lielumus iegūst šādi:


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) Izpildes termināla noklusējuma konfigurācijas sadaļa Configuration:

setterm --reset

Pievienojot šo rindu, mēs turpinām pilnībā atiestatīt visu sesiju un termināla izpildes parametrus, kur tiek izmantots Shell skripts izpildīts. Iespējojiet to vai ne, atbilstoši savām prasībām un vajadzībām.

Ar šo mums būs BSM ļoti noderīga un efektīva, lai būtu izcila Shell skripts.

Visbeidzot, mēs izpētīsim, kas šim apvalka skriptam vajadzētu būt zemāk:

  • Informatīva sadaļa par Radītāju un Programmu:

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

 

  • Informatīva sadaļa par programmas licencēšanu:

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

Es ceru, ka ar šo "Shell skripta izveides paraugprakse GNU / Linux" ir pietiekami, lai viņi, veidojot a., varētu rūpīgi koncentrēties uz katru tā mazo aspektu un daudzu lietu iemesliem Shell skriptstas ir, es ceru, ka daži no šiem padomiem jums palīdzēs uzlabot Shell skripts, bet ne tik daudz sev, bet tiem Lietotājiem o SysAdmin jums tie jāpārvalda. Lai jums nebūtu jāiet cauri garlaicīgs un grūts uzdevums de uzziniet, ko viņi kodēja, kā un kāpēc un kāpēc tas vairs nedarbojas.

Līdz nākamajiem Shell Scripting ierakstiem!


Raksta saturs atbilst mūsu principiem redakcijas ētika. Lai ziņotu par kļūdu, noklikšķiniet uz šeit.

Esi pirmais, kas komentārus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta.

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.