GNU / Linux тутумунда Shell скриптин түзүү боюнча мыкты тажрыйбалар - 2-бөлүк

Биринчиден, бул басылманы окуудан мурун, мен сизге I бөлүк деп аталган аталган басылманын «GNU / Linux тутумунда Shell скриптин түзүү боюнча мыкты тажрыйбалар".

Shell сценарийиКийинки, кичинекей на бакыттын эң маанилүүсү мурунку жазуу:

А) Идеалдуу Шебанг ал төмөнкүдөй жазылышы керек:

#! / usr / bin / env bash.

Эскертүү: Сөздү алмаштыруу Баш сиз тандаган кабык менен.

B) Мыкты жетишүү үчүн STRICT же КООПСУЗ БАШ РЕЖИМИ (Bash Strict Mode / BSM) биз төмөнкү альтернативаларды сунуш кылабыз:

B.1) Мүчүлүштүктөрдү оңдоо бөлүмүнүн конфигурациясы:

  1. set -o errexit
  2. set -o зат атооч
  3. set -o pipefail
  4. # set -o xtrace

Бирок, бул жаңы жазууда биз коддун саптарын минималдаштыруу үчүн төмөнкүнү сунуштайбыз BASH STRICT же КООПСУЗ РЕЖИМ (Баш катуу режими / BSM):

set -eou pipefail

бул менен бирге BSM биз мурунку 3 сап менен бирдей жетишебиз.

Менин жеке сунушум: Shell сценарийиңиз курулуп бүткөндөн кийин, BSM линияларын кошуңуз жана мүчүлүштүктөрдү оңдоп, өркүндөтүп, аны жогорку деңгээлде иштетиңиз. Каалаганыңызда кошумчалады BSM тандоо (-x) сапты иштеткендегидей натыйжага жетишүү үчүн: -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

Ушул сапты кошуп, биз толугу менен сессияны жана терминалды колдонуунун параметрлерин баштапкы абалга келтиребиз Shell script аткарылды. Сиздин талаптарга жана муктаждыктарга ылайык, аны иштетүү же жок.

Муну менен биз BSM сонун болушу үчүн абдан пайдалуу жана натыйжалуу Shell script.

Акырында, Shell сценарийинде төмөнкүлөр болушу керек:

  • Жаратуучу жана Программа жөнүндө маалыматтык бөлүм:

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

Ушул экинчи бөлүгү менен деп үмүттөнөм "GNU / Linux программасында Shell скриптин түзүү боюнча мыкты тажрыйбалар" а түзүүдө алардын ар бир кичинекей жагына жана көп нерсенин себебине кылдат көңүл бура алышы үчүн жетиштүү Shell scriptбашкача айтканда, ушул кеңештердин айрымдары жакшыраак болгондо сизге жардам берет деп ишенем Shell script, бирок өзүң үчүн эмес, ошолор үчүн колдонуучулар o SysAdmin аларды башкаруу керек. Ошентип, a аркылуу өтпөшүңүз керек түйшүктүү жана оор тапшырма de эмнени коддошконун, кандайча жана эмне үчүн иштешкенин жана эмне үчүн ал иштебей калгандыгын билип алыңыз.

Shell Scripting кийинки билдирүүлөр чейин!


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

Комментарий биринчи болуп

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт.

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.