Parhaat käytännöt Shell-komentosarjan luomiseen GNU / Linuxissa - osa 2

Ensinnäkin, ennen tämän julkaisun lukemista, suosittelen, että luet osa I mainitun julkaisun nimeltään «Parhaat käytännöt Shell-komentosarjan luomiseen GNU / Linuxissa".

Shell-komentosarjat

Seuraavaksi pieni yhteenveto tärkeimmistä onnellisuudesta edellinen merkintä:

A) Ihanteellinen Shebang se tulisi kirjoittaa seuraavasti:

#! / usr / bin / env bash.

Huom: Korvataan sana kemut valitsemallasi kuorella.

B) Erinomaisen saavuttamiseksi STRICT tai SAFE BASH MODE (Bash Strict Mode / BSM) tarjoamme seuraavat vaihtoehdot:

B.1) Virheenkorjausosan määritys:

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

Tässä uudessa merkinnässä ehdotamme kuitenkin seuraavien koodirivien minimoimiseksi BASH STRICT tai SAFE MODE (Bash Strict Mode / BSM):

set -eou pipefail

Tämän BSM saavutamme täsmälleen saman kuin edellisillä 3 rivillä.

Henkilökohtainen suositukseni on: Kun Shell-komentosarjasi on rakennettu, lisää BSM-linja (t) aloittaaksesi komentosarjojen virheenkorjauksen ja parantamisen ja tekemällä siitä erittäin toimivan. Kun haluat, lisää sanoi BSM vaihtoehto (-x) saavuttaa sama vaikutus kuin kun otat linjan käyttöön: aseta -o xtrace, yllä olevassa menetelmässä, eli rivisi BSM sen pitäisi näyttää tältä:

set -eoux pipefail

B.2) Konfiguroitujen muuttujien Output-osan konfigurointi:

IFS=$'\n\t'

Lisäämällä tämä rivi jatketaan muuttujan uudelleenmäärittelyä Sisäinen kentänerotin ja saavuttaa parempi merkkijonon sanojen (kenttien) visualisointi ja / tai sieppaus. Ota se käyttöön tai ei, tarpeidesi ja tarpeidesi mukaan.

Näillä tyypillisillä asetuksilla:


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

Muuttujien tuotokset saataisiin seuraavasti:


a
b
c
a b c

Oletus- ja suositelluilla asetuksilla:


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

Muuttujien tuotokset saataisiin seuraavasti:


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) Suorituspäätteen oletusasetusten määritysosa:

setterm --reset

Lisäämällä tämä rivi jatkamme koko istunnon ja sen päätelaitteen suoritusparametrien nollaamista, jossa Shell-komentosarja teloitettu. Ota se käyttöön tai ei, tarpeidesi ja tarpeidesi mukaan.

Tämän avulla meillä on BSM erittäin hyödyllinen ja tehokas saadakseen erinomaisen Shell-komentosarja.

Lopuksi tutkimme mitä Shell-skriptillä pitäisi olla alla:

  • Informatiivinen osa Luojasta ja ohjelmasta:

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

  • Informatiivinen osa ohjelman lisensoinnista:

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

Toivon, että tämän toisen osan kanssa "Shell-komentosarjan luomisen parhaat käytännöt GNU / Linuxissa" riittää, jotta he voivat keskittyä perusteellisesti sen jokaiseen pieneen piirteeseen ja monien asioiden syihin luodessaan Shell-komentosarjaToivon, että jotkut näistä vinkeistä auttavat sinua parantamisessa Shell-komentosarja, mutta ei niinkään itsellesi, vaan niille Usuarios o SysAdmin sinun on hallittava niitä. Joten sinun ei tarvitse käydä läpi tylsä ​​ja vaikea tehtävä de selvittää, mitä he koodaivat, miten ja miksi, ja miksi se ei enää toimi.

Seuraaviin Shell Scripting -viesteihin asti!


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.