Imikhuba emihle yokwenza iShell Script ku-GNU / Linux

Imvamisa, lapho uqala ukusebenza kufayela le- Indawo yokuphatha yamaseva ane-GNU / Linux kanye / noma i-Unix Operating Systems, umuntu uzithola (ubuso) busebenza endaweni lapho kuvame ukuba khona inqwaba yemisebenzi ehleliwe yabhalwa abanye abaphathi nokuthi kwesinye isikhathi kufanele phatha (phatha) ukuze uxazulule noma iyiphi inkinga, uthuthukise futhi / noma uqede, ukuze uhambisane nemfuneko entsha yeSikhungo lapho esebenza khona. Ngakho-ke akumangalisi, ukuthi noma yikuphi okusha I-SysAdmin Kunoma iyiphi indawo yokusebenza, ubhekene nomsebenzi onzima wokuqonda ezinye ze- Isikripthi seShell kudalwe abanye iSysAdmin endala, ezingabhalwanga kahle, noma zisesimweni esinengqondo noma sokubhala, okungelula ukusiqonda, noma esimweni esibi kakhulu, ngemiyalo yomyalo, engajwayelekile, endala, engasebenzi kahle, noma ebhalwe ngendlela exakile futhi edidayo.

Isikripthi se-Shell

Ngesikhathi ukuxazulula imibhalo ebhalwe kabi kuhlala kuyisicefe sesikhashana, lokhu kufundisa noma ngubani SysAdmin enhle okuthile okubalulekile. Uma umuntu ezokwakha i- Isikripthi seShell okufanele isetshenziswe ngale kwanamuhla, ihlala ingcono njalo zibhale ngendlela efanelekile futhi ejwayelekile, ukuze ngokuhamba kwesikhathi, noma ngubani omunye umuntu, noma uqobo lwakho, akwazi ukwenza i- umzamo omncane nolwazi kuthola ukuqonda nokuphatha esikhathini esincane.

Ngakho-ke, ngemuva kochungechunge olusebenzayo lwezincwadi ku "Funda i-Shell Scripting" lapho sihlola khona imibhalo ethile esebenzayo ngemiyalo elula neyisisekelo, sizoqala ngalolu chungechunge olusha olubiziwe "Izindlela ezinhle kakhulu zokwenza iShell Script ku-GNU / Linux", lapho sizogxila ngokuphelele esicini ngasinye saso kanye nesizathu sezinto eziningi, okusho ukuthi, sizokhipha amanye amathiphu azosenza senze imibhalo engcono, kepha hhayi thina kakhulu, kodwa nomuntu olandelayo (iSysAdmin) kufanele abaphathe. Ngakho-ke akudingeki udlule emsebenzini oyisidina futhi onzima wokuthola ukuthi yini engikubhalayo, kanjani nokuthi kungani, nokuthi kungani kungasasebenzi.

Kulokhu okuthunyelwe kokuqala (1st) yalolu chungechunge olusha "Izindlela ezinhle kakhulu zeskripthi esihle seShell seGNU / Linux" Sizokhuluma ngalokho okwenzekayo noma okufanele kungene ku- Unhlokweni weSkripthi Seshell.

================================================================
NDLUNKULU - UKUMEMWA KWESIKHUNGO
================================================================

#! / path / transl [ipharamitha-agumenti]

Umugqa ophezulu yisakhiwo esiyisisekelo lapho kufakwa khona iShell Script ye-GNU / Linux. Izakhi zalo zingachazwa kanjena:

#! => sha-bang

I-sha-bang (#!) Phezulu kweSkripthi esidaliwe noma esizokwakhiwa yifayela le- iskripthi esitshela uhlelo lwethu olusebenzayo ukuthi ifayela lethu liyisethi yemiyalo ezokondliwa (izotolikwa) ngutolika womyalo okhonjiswe ngemuva kwayo. Amabhangqa ezinhlamvu #! empeleni, kuyi- inombolo yomlingo ama-byte amabili, umaka okhethekile wokuthi khetha uhlobo lwefayela, futhi kithi, iskripthi esisebenzisekayo seShell. Ngokushesha ngemuva kwe-sha-bang kuza igama lika indlela lapho umhumushi azokwenziwa khona kanye negama lotolika oshiwo. Ngamanye amagama, nansi indlela eya ohlelweni ehumusha imiyalo kuskripthi, noma ngabe utolika, ulimi lohlelo, noma insiza. Leli gobolondo bese lenza imiyalo kuskripthi, liqala phezulu (umugqa ngemuva kwe-sha-bang), futhi linganaki noma yimiphi imibono. Abanye sha bang bangaba:

#! / bin / sh
#! / bin / bash
#! / usr / bin / perl
#! / usr / bin / tcl
#! / bin / sed -f
#! / usr / awk -f

Umugqa ngamunye ochazwe ngenhla (njengesibonelo) ubiza igobolondo elihlukile. Umugqa / bin / sh, biza i igobolondo ngokuzenzakalelayo (IBash Kuhlelo Lokusebenza lwe-GNU / Linux) noma okunye okufanayo. Isebenzisa #! / bin / sh, inani elizenzakalelayo le- Igobolondo leBourne Kokuhlukahluka okuningi kwezentengiso kwe-UNIX-based Operating Systems, kwenza ukuthi iSkripthi senziwe iyaphatheka kwamanye ama-Operating Systems angeyona i-Linux ngokufanele, kodwa iyafana noma isuselwe kuyo noma i-UNIX, yize lokhu kudela izici ezithile ze-BASH. Noma kunjalo, ukulandelana "#! / Bin / sh" kuvumelana nokujwayelekile I-POSIX sh ejwayelekile.

Khumbula ukuthi indlela enikezwe ku-sha-bang kufanele ilunge, ngaphandle kwalokho umlayezo wephutha, imvamisa "Umyalo awutholakali", kuzoba ukuphela komphumela wokwenziwa kweskripthi. Khumbula abalingiswa »#! « ingashiywa uma iSkripthi sineqoqo kuphela lemiyalo ejwayelekile Yokusebenza, okungukuthi, ngaphandle kokusebenzisa iziqondisi zangaphakathi zeShell. Futhi khumbula futhi lokho »#! / Ibhini / sh« icela utolika weShell ozenzakalelayo, owenza iphutha ku »#! / Bin / bash« eqenjini naye Uhlelo Lokusebenza lwe-GNU / Linux.

Ngokuphathelene nezimpikiswano, kunokuningi okungasetshenziswa kepha okuvame kakhulu ngukuthi: »-E«. okwenza iskripthi qinisekisa amaphutha wokwenza kwanoma imuphi umyaloo (umugqa wokwenza) futhi uma ulungile, iphoqa ukuma nokuphuma, ejwayelekile yile »-F« ukuze khombisa ukuthi yimuphi umbhalo ozowulayisha futhi enye ye-rarest yi »-Rm« lokho kwenza ukususwa kwayo lapho ukwenziwa kwayo kuphelile. Kungenzeka kuphela ukuthi ucacise kufayela le- sha bang kuze kube ukuphikisana okukodwa (ipharamitha) ngemuva kwegama lohlelo oluzosebenza.

Futhi ekugcineni, tshela iskripthi okuguqukayo komhlaba wonke ozokusebenzisa ezingxenyeni ezibalulekile zekhodi yakho, ukuqinisekisa imicimbi, efana nendlela yokwenza, umsebenzisi ogunyaziwe, igama leskripthi, phakathi kwabanye. Futhi ugcine nge idatha yohlelo, umdali, inhlangano, phakathi kwabanye, kanye nokulayisense okusebenza ohlelweni.

Iseluleko sami (Izindlela ezihamba phambili) ukukhetha i- okuhle sha-bang nokuqonda a Isikripthi seShell Yilezi:

#! / usr / bin / env bash

Kungani usebenzisa umyalo »Env« Sikhomba Ophikweni Lokusebenza utolika ozosetshenziswa nendlela eqondile echazwe kuyo ngokuzenzakalela, esivumela ukuthi sibe sha bang lokho kwandisa ukuthambeka kwayo, ngoba hhayi kukonke I-OS GNU / Linux otolika noma izinhlelo zinendlela efanayo. Futhi ngaphandle kwezimpikiswano, ngoba ngalokho kungcono ukusebenzisa umyalo isethi, ngoba naye singakwazi qinisekisa amaphutha, okujwayelekile (-e) noma okucacisiwe (+ x / -x), noma ku sula ukusetha komhlaba wonke kwemvelo (-i) noma okuhlukile (-u / –unset) okuguqukayo. Futhi ekugcineni, ukuze yenza izenzo ezithile ezihambisanayo (- o) ngaphakathi kweskripthi.

Ngakho-ke i-HEADER yami enconyiwe kuzoba:

#! / usr / bin / env bash
# Khombisa umhumushi we-bash ngendlela ephelele ngohlelo Lokusebenza.

setha -o errexit
# Ukutshela iskripthi ukuthi sime futhi sivale lapho umyalo noma umugqa wokwenza wehluleka.

setha -o ibizo
# Ukutshela iskripthi ukuthi sime futhi sivale lapho iskripthi sizama ukusebenzisa okuguquguqukayo okungachazwanga.

setha -o ipayipi
# Ukuthola isimo sokuphuma se-oda lokugcina elibuyise ikhodi yokuphuma engeyona zero.

# setha -o xtrace
# Ukulandela okusebenzayo. Isebenziseka ukulungisa iphutha. Nika amandla ukubheka amaphutha kuphela.

Khumbula ukulandela ngokwengeziwe lezi zincomo:

01.- Khipha ikhodi yakho: Ukwenza ikhodi yakho ifundeke kubaluleke kakhulu, futhi kuyinto abantu abaningi ababonakala bayikhohlwa futhi. Zama ukwenza izincomo ezidingekayo ukuze ubone isakhiwo esihle esinengqondo esibonakalayo.

02. - Faka izikhala zokuhlukanisa phakathi kwezingxenye zekhodi: Lokhu kungasiza ukwenza ikhodi iqondakale kakhulu, ngoba isikhala phakathi kwamamojula noma izingxenye kusiza ukwenza ikhodi ifundeke futhi iqondakale kalula.

03.- Phawula ngangokunokwenzeka mayelana nekhodi: Phezulu (noma ezansi) kwe-Command Order ngayinye (i-Execution Line) noma i-Code Section, kuhle ukwengeza incazelo yomsebenzi weskripthi ukuchaza okwenzeka ngaphakathi kwekhodi uqobo.

04.- Dala okuguquguqukayo ngamagama achazayo wemisebenzi yabo: Nikeza amagama ahlukahlukene achazayo ngokusobala akhomba umsebenzi ezokwakhelwa wona. Noma wenza okuguquguqukayo kwesikhashana okungasoze kusetshenziswe ngaphandle kwebhulokhi yekhodi eyodwa, kusese kuhle ukubeka igama elichaza ngokusobala (ngokuqonde ngqo) ukuthi yimaphi amanani noma imisebenzi eliyisebenzisayo.

05.- Sebenzisa i-syntax VARIABLE = $ (command) ukufaka umyalo esikhundleni: Uma ufuna ukudala ukuguquguquka okunenani elisuselwa komunye umyalo, kunezindlela ezimbili zokukwenza ku-bash. Nge i-backtick, okungukuthi, ngezinhlamvu `` , I-Ejm: VARIABLE = `imiyalo yezinketho zomyalo`, kepha isivele yehlisiwe, ngakho-ke i-syntax VARIABLE = $ (umyalo) kuyindlela yesimanje kakhulu, eyamukelekayo nenconywayo. NO -> DATE = `date +% F` / YES -> DATE = $ (date +% F)

06.- Sebenzisa amamojula we-Superuser ne-Authorized User Validation kanye / noma okuguquguqukayo nge-password noma ngaphandle kwayo: Ukwandisa amazinga okuphepha uma kunesidingo.

07.- Sebenzisa amamojula kanye / noma okuguquguqukayo kokuQinisekiswa koHlelo Lokusebenza (iDistro, inguqulo, i-Architecture): ukuvimbela ukusetshenziswa kuzingxenyekazi ezingafanelekile.

08. - Sebenzisa amamojula (izinqubo / izingxenye) ukuqinisekisa ukwenziwa kwezenzo ezibucayi noma ze-batch (amamojula / imisebenzi): Ukunciphisa amaphutha ngenxa yokungasebenzi noma ukunganaki.

09.- Nikeza Izindlela Zokusebenzelana Zomsebenzisi (Zisebenziseka kalula): Nge-Terminal ngamamenyu nemibala nge lengxoxo futhi nge Izindlela Zokuqhafaza Zabasebenzisi Abayisisekelo abaneZenity, Gxmessage. Futhi uma kungenzeka sebenzisa ukusekelwa kwezixwayiso ze-sonic zezehlakalo ezibonakalayo ngokusho komsindo. Ngizamile ngangokunokwenzeka ukuthi iSkripthi sakho sikwazi sebenza ngazo zombili izindlela ngokunika amandla nokukhubaza izinketho / amamojula / imisebenzi.

10.- Faka amamojula we-Welcome and Farewell (imiyalezo): uma kunesidingo ukwandisa ukuxhumana nomsebenzisi.

11.- Faka phakathi imodyuli yokuqinisekisa yokwenza kabili: Dala ifayela lokukhiya ukuze ulivikele ekusebenzeni isikhathi esingaphezu kwesisikhathi esisodwa ngasikhathi sinye.

12.- Hlaziya ubukhulu boskripthi ngemisebenzi yangaphandle kanye / noma amamojula: Uma iSkripthi sikhulu kakhulu, hlukanisa ikhodi usebenzisa imisebenzi noma uyihlukanise ibe yimibhalo emincane ecelwe eyodwa enkulu.

13. - Ukunxusa ngendlela ecacile nebonakalayo izingcingo eziya kwabanye abahumushi (izilimi ezihlelayo) ngaphakathi kweSkripthi: Bameme ngokucacile ngemigqa noma ngamamojula.

Isibonelo:

# ================================================== #
#!/bin/bash
#Llamando a un interprete externo a BASH
echo 'El siguiente texto será mostrado por el interprete de PERL'
perl -e 'print "Este texto es mostrado por un script PERL embebido.\n";'
exit 0
# ==================================================#
# ==================================================# 
#!/bin/bash #Llamando al interprete de Python. 
echo 'El siguiente es un script de python:'
echo print "Hola, mundo!" | tee $HOME/.testpythonbash.py
python $HOME/.testpythonbash.py exit 0
# ==================================================#

# ======================================================= #
#!/bin/bash
# bash-y-perl.sh

echo "Saludos desde la parte BASH del script."
# Es posible añadir mas comandos BASH aqui.

exit 0
# Fin de la parte BASH del script.

###########################################################

#!/usr/bin/perl
# Esta parte del script se invoca con la opcion -x.

print "Saludos desde la parte PERL del script.\n";
# Podemos añadir mas comandos PERL aqui.

# Fin de la parte PERL del script.
# ======================================================= #
 

Ezincwadini ezizayo sizokwandisa ngokuningiliziwe umkhuba ngamunye ochazwe ngenhla.

Futhi uma wazi eminye imikhuba emihle, eyakho noma eminye, unganqikazi ukuphawula ngayo ukuze wenze ukugcwaliseka okuphelele!

Kuze kube sekushicilelwa okulandelayo kwalolu chungechunge olusha.


Amazwana ayi-6, shiya okwakho

Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele imininingwane: Miguel Ángel Gatón
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.

  1.   UMax j ​​rodriguez kusho

    Imininingwane eyodwa nje, yi- "shebang" 😛
    okuthunyelwe okuhle kakhulu, imikhuba emihle ngokuhamba kwesikhathi isiza ukulinganisa.

  2.   Esidlule lapha kusho

    IBash akuyona igobolondo elizenzakalelayo kukho konke ukwabiwa, ngakho-ke isixhumanisi esingokomfanekiso se- / bin / sh asihlali sikhomba ku-bash. Ku-Debian ngokwesibonelo (futhi ngicabanga ukuthi Ubuntu):
    $ ls -l / bin / sh
    lrwxrwxrwx 1 impande impande 4 aza 8 2014 / bin / sh -> dash
    Igobolondo elizenzakalelayo ngakho-ke ku-Debian liyi-dash. Bona lapha: https://wiki.debian.org/Shell

  3.   ongenagama kusho

    Njengethiphu yokwazi iShell eSetshenziswayo:

    bhala u- $ 0
    bhala $ SHELL
    thumela | grep SHELL

  4.   Ing. UJoseph Albert kusho

    Uqinisile impela! Ngivivinye ku-DEBIAN 9 naseKali Linux 2.0 futhi kuyiqiniso! kukuthatha ukudlula. Noma kunjalo kakhulu isincomo se: #! / Usr / bin / env bash uma kuyiShell ofuna ukuyisebenzisa.

    Futhi uqinisile impela yiShebang, kepha kwamanye amawebhusayithi (imibhalo yobuchwepheshe) bakubiza ngokuthi shabang noma amanye amagama, yingakho ukudideka kwami. Isibonelo:

    Ekusebenziseni ikhompyutha, i-shebang ukulandelana kwezinhlamvu okubandakanya uphawu lwenombolo yezinhlamvu nomaki wesibabazo (#!) Ekuqaleni kweskripthi. Kubizwa nangokuthi sha-bang, [1] [2] hashbang, [3] [4] pound-bang, [5] noma i-hash-pling

    kusuka: https://en.wikipedia.org/wiki/Shebang_%28Unix%29

    Y Isahluko 2. Ukuqala Nge-Sha-Bang
    kusuka: http://www.tldp.org/LDP/abs/html/sha-bang.html

  5.   Ing. UJoseph Albert kusho

    Futhi: igama lesisekelo $ 0