Amalan terbaik untuk membuat Skrip Shell di GNU / Linux - Bahagian 2

Pertama sekali, sebelum membaca penerbitan ini, saya mengesyorkan anda membaca bahagian I penerbitan tersebut, dipanggil «Amalan terbaik untuk membuat Skrip Shell di GNU / Linux".

Shell ScriptingSeterusnya, kecil ringkasan dari kebahagiaan yang paling penting entri sebelumnya:

A) Shebang yang ideal ia harus ditulis seperti berikut:

#! / usr / bin / env bash.

Nota: Menggantikan perkataan menampar oleh cengkerang pilihan anda.

B) Untuk mencapai yang cemerlang MOD STRICT or SAFE BASH (Bash Strict Mode / BSM) kami menawarkan alternatif berikut:

B.1) Konfigurasi Bahagian Debugging:

  1. tetapkan -o errexit
  2. kata nama set -o
  3. set -o pipefail
  4. # set -o xtrace

Walau bagaimanapun, dalam entri baru ini kami sarankan untuk meminimumkan garis kod berikut BASH STRICT atau SAFE MODE (Bash Strict Mode / BSM):

set -eou pipefail

Dengan ini BSM kita mencapai sama seperti 3 baris sebelumnya.

Cadangan peribadi saya adalah: Setelah Shell Script anda dibina, tambahkan baris BSM untuk memulakan penyahpepijatan dan menyempurnakan Skrip anda dan menjadikannya sangat berfungsi. Apabila anda mahu, tambah kata BSM pilihan (-x) untuk mencapai kesan yang sama seperti ketika anda mengaktifkan talian: set -o xtrace, dalam kaedah di atas, iaitu baris anda BSM kelihatan seperti ini:

set -eoux pipefail

B.2) Konfigurasi Bahagian Output Pemboleh ubah yang dikonfigurasi:

IFS=$'\n\t'

Dengan menambah baris ini, kami meneruskan untuk mengkonfigurasi semula pemboleh ubah Pemisah Medan Dalaman dan mencapai paparan dan / atau penangkapan perkataan (bidang) rentetan watak yang lebih baik. Aktifkan atau tidak, mengikut kehendak dan keperluan anda.

Dengan tetapan khas ini:


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

Keluaran pemboleh ubah akan diperoleh dengan cara berikut:


a
b
c
a b c

Dengan tetapan lalai dan disyorkan:


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

Keluaran pemboleh ubah akan diperoleh dengan cara berikut:


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) Bahagian Konfigurasi konfigurasi lalai terminal pelaksanaan:

setterm --reset

Dengan menambahkan baris ini, kami meneruskan untuk menetapkan semula keseluruhan sesi dan parameter pelaksanaan terminal di mana penggunaan Skrip shell dilaksanakan. Aktifkan atau tidak, mengikut kehendak dan keperluan anda.

Dengan ini kita akan mempunyai BSM sangat berguna dan cekap untuk memiliki yang cemerlang Skrip shell.

Akhirnya, kita akan meneroka apa yang seharusnya dimiliki oleh Shell Script di bawah ini:

  • Bahagian maklumat mengenai Pencipta dan Program:

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

 

  • Bahagian maklumat mengenai Pelesenan Program:

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

Saya harap dengan bahagian kedua ini "Amalan terbaik untuk membuat Skrip Shell di GNU / Linux" sudah cukup bagi mereka untuk dapat menumpukan perhatian secara menyeluruh pada setiap aspek kecilnya dan alasan banyak perkara ketika membuat a Skrip shelliaitu, saya harap beberapa petua ini dapat membantu anda ketika menjadi lebih baik Skrip shell, tetapi tidak begitu banyak untuk diri sendiri, tetapi untuk mereka Pengguna o SysAdmin anda harus menguruskannya. Supaya anda tidak perlu melalui tugas yang membosankan dan sukar de cari tahu apa yang mereka kodkan, bagaimana dan mengapa, dan mengapa ia tidak lagi berfungsi.

Sehingga posting seterusnya mengenai Shell Scripting!


Kandungan artikel mematuhi prinsip kami etika editorial. Untuk melaporkan ralat, klik di sini.

Menjadi yang pertama untuk komen

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan.

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.