Pinakamahusay na kasanayan upang lumikha ng isang Shell Script sa GNU / Linux - Bahagi 2

Una sa lahat, bago basahin ang publication na ito, inirerekumenda kong basahin mo ang bahaging I ng nasabing publication, tinawag «Pinakamahusay na kasanayan upang lumikha ng isang Shell Script sa GNU / Linux".

Scripting ng Shell

Susunod, isang maliit Resumen ng pinakamahalaga ng kaligayahan nakaraang entry:

A) Ang perpektong Shebang dapat itong isulat tulad ng sumusunod:

#! / usr / bin / env bash.

Tandaan: Pinalitan ang salita malakas na palo sa pamamagitan ng shell na iyong pinili.

B) Upang makamit ang isang mahusay STRICT o SAFE BASH MODE (Bash Strict Mode / BSM) nag-aalok kami ng mga sumusunod na kahalili:

B.1) Pag-configure ng Seksyon ng Pag-debug:

  1. itakda -o errexit
  2. itakda -o pangngalan
  3. itakda -o pipefail
  4. # set -o xtrace

Gayunpaman, sa bagong entry na ito iminumungkahi namin upang ma-minimize ang mga linya ng code sa sumusunod BASH STRICT o SAFE MODE (Bash Strict Mode / BSM):

set -eou pipefail

Gamit ito BSM nakakamit namin ang eksaktong kapareho ng sa nakaraang 3 mga linya.

Ang aking personal na rekomendasyon ay: Kapag nabuo na ang iyong Shell Script, idagdag ang (mga) linya ng BSM upang simulang i-debug at gawing perpekto ang iyong Script at gawin itong lubos na gumagana. Kung nais mo, idagdag ang sinabi BSM ang pagpipilian (-x) upang makamit ang parehong epekto tulad ng kapag pinagana mo ang linya: itakda -o xtrace, sa pamamaraan sa itaas, iyon ay, ang iyong linya ng BSM dapat ganito ang hitsura:

set -eoux pipefail

B.2) Pag-configure ng Seksyon ng Output ng mga naka-configure na Variable:

IFS=$'\n\t'

Ang pagdaragdag ng linyang ito ay nagpapatuloy sa amin upang muling isaayos ang variable Paghihiwalay ng Panloob na Patlang at makamit ang isang mas mahusay na visualization at / o pagkuha ng mga salita (mga patlang) ng isang string ng character. Paganahin ito o hindi, alinsunod sa iyong mga kinakailangan at pangangailangan.

Sa mga karaniwang setting na ito:


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

Ang mga output ng mga variable ay maaaring makuha sa sumusunod na paraan:


a
b
c
a b c

Gamit ang default at inirekumendang mga setting:


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

Ang mga output ng mga variable ay maaaring makuha sa sumusunod na paraan:


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) Seksyon ng Pag-configure ng default na pagsasaayos ng terminal ng pagpapatupad:

setterm --reset

Ang pagdaragdag ng linyang ito ay nagpapatuloy naming ganap na i-reset ang buong session at ang mga parameter ng pagpapatupad ng terminal kung saan ang paggamit ng Shell script pinatay. Paganahin ito o hindi, alinsunod sa iyong mga kinakailangan at pangangailangan.

Sa pamamagitan nito magkakaroon tayo ng BSM napaka kapaki-pakinabang at mahusay na magkaroon ng isang mahusay Shell script.

Sa wakas, susuriin namin kung ano ang dapat magkaroon ng Shell Script sa ibaba:

  • Isang seksyong nagbibigay-kaalaman tungkol sa Lumikha at sa Programa:

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

  • Isang seksyon na nagbibigay-kaalaman sa Paglilisensya ng Programa:

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

Inaasahan ko na sa pangalawang bahagi ng "Pinakamahusay na kasanayan upang lumikha ng isang Shell Script sa GNU / Linux" ay sapat na upang makapagtuon silang mabuti sa bawat maliit na aspeto nito at ang dahilan ng maraming bagay kapag lumilikha ng Shell scriptiyon ay, inaasahan kong ang ilan sa mga tip na ito ay makakatulong sa iyo pagdating sa pagpapabuti Shell script, ngunit hindi gaanong para sa iyong sarili, ngunit para sa mga iyon Mga gumagamit o SysAdmin kailangan mong pamahalaan ang mga ito. Para hindi ka na dumaan a nakakapagod at mahirap na gawain de alamin kung ano ang na-code nila, paano at bakit, at kung bakit hindi na ito gumagana.

Hanggang sa mga susunod na post sa Shell Scripting!


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.