Βέλτιστες πρακτικές για τη δημιουργία ενός σεναρίου Shell στο GNU / Linux - Μέρος 2

Πρώτα απ 'όλα, πριν διαβάσετε αυτήν τη δημοσίευση, σας προτείνω να διαβάσετε το μέρος Ι της εν λόγω δημοσίευσης, που ονομάζεται «Βέλτιστες πρακτικές για τη δημιουργία ενός Shell Script σε GNU / Linux".

Shell Scripting

Στη συνέχεια, ένα μικρό επαναλάβω από το πιο σημαντικό της ευτυχίας προηγούμενη καταχώριση:

Α) Το ιδανικό Shebang θα πρέπει να γραφτεί ως εξής:

#! / usr / bin / env bash.

Σημείωση: Αντικατάσταση της λέξης βίαιο χτύπημα από το κέλυφος της επιλογής σας.

B) Για να πετύχετε μια εξαιρετική STRICT ή SAFE BASH MODE (Bash Strict Mode / BSM) προσφέρουμε τις ακόλουθες εναλλακτικές λύσεις:

B.1) Διαμόρφωση του τμήματος εντοπισμού σφαλμάτων:

  1. σετ -ο errexit
  2. σύνολο -ο ουσιαστικό
  3. set -o pipefail
  4. # σύνολο -o xtrace

Ωστόσο, σε αυτήν τη νέα καταχώρηση προτείνουμε για να ελαχιστοποιήσουμε τις γραμμές κώδικα τα ακόλουθα BASH STRICT ή SAFE MODE (Bash Strict Mode / BSM):

set -eou pipefail

Με αυτό BSM πετυχαίνουμε ακριβώς το ίδιο με τις προηγούμενες 3 γραμμές.

Η προσωπική μου πρόταση είναι: Μόλις δημιουργηθεί το Shell Script, προσθέστε τις γραμμές BSM για να ξεκινήσετε τον εντοπισμό σφαλμάτων και να τελειοποιήσετε το Script σας και να το κάνετε πολύ λειτουργικό. Όταν θέλετε, προσθέστε το είπε 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

Προσθέτοντας αυτήν τη γραμμή προχωράμε σε πλήρη επαναφορά ολόκληρης της περιόδου λειτουργίας και των παραμέτρων εκτέλεσης του τερματικού όπου η χρήση του Σενάριο κελύφους εκτελέστηκε. Ενεργοποιήστε το ή όχι, σύμφωνα με τις απαιτήσεις και τις ανάγκες σας.

Με αυτό θα έχουμε ένα BSM πολύ χρήσιμο και αποτελεσματικό για να έχεις εξαιρετικό Σενάριο κελύφους.

Τέλος, θα διερευνήσουμε τι πρέπει να έχει το Shell Script παρακάτω:

  • Μια ενημερωτική ενότητα για τον Δημιουργό και το Πρόγραμμα:

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

Ελπίζω ότι με αυτό το δεύτερο μέρος του "Βέλτιστες πρακτικές για τη δημιουργία ενός σεναρίου Shell στο GNU / Linux" είναι αρκετό για να είναι σε θέση να επικεντρωθούν διεξοδικά σε κάθε μικρή πτυχή του και τον λόγο για πολλά πράγματα κατά τη δημιουργία Σενάριο κελύφουςΔηλαδή, ελπίζω ότι μερικές από αυτές τις συμβουλές θα σας βοηθήσουν όταν πρόκειται να βελτιωθείτε Σενάριο κελύφους, αλλά όχι τόσο για τον εαυτό σας, αλλά για αυτά Χρήστες o SysAdmin πρέπει να τα διαχειριστείτε. Για να μην χρειάζεται να περάσετε από ένα κουραστικό και δύσκολο έργο de μάθετε τι κωδικοποίησαν, πώς και γιατί και γιατί δεν λειτουργεί πλέον.

Μέχρι τις επόμενες δημοσιεύσεις για το Shell Scripting!


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.