Eyona ndlela ilungileyo yokwenza iShell yeSkripthi kwi-GNU / Linux

Ngokwesiqhelo, xa uqala ukusebenza kwifayile ye- Indawo yolawulo yeeSeva ezine-GNU / Linux kunye / okanye iiNkqubo zokuSebenza ze-Unix, umntu uzibhaqa (ubuso) esebenza kwindawo apho kuhlala kukho iqela lemisebenzi ecwangcisiweyo abanye abalawuli babhala kwaye ngaxa lithile kufuneka lawula (lawula) for ukusombulula nayiphi na ingxaki, ukuphucula kunye / okanye ukuphelisa, ukuthobela imfuno entsha yeZiko apho asebenza khona. Akumangalisi ke, ukuba kukho nayiphi na entsha KwiSysAdmin Kuyo nayiphi na indawo yokusebenzela, ujongene nomsebenzi onzima wokuqonda ezinye ze Iskripthi seShell yenziwe ngabanye iSysAdmin endala, ezingabhalwanga kakuhle, okanye ezikwisakhiwo esinengqiqo okanye sokubhala, ekunzima ukusiqonda, okanye kwimeko embi, ngemiyalelo yomyalelo, i-atypical, endala, engasebenzi kakuhle, okanye ebhaliweyo ngendlela engathandekiyo kwaye edidayo.

Ukushicilela kweShell

Ngexesha ukusombulula izikripthi ezibhalwe kakubi ihlala ikucaphukisa okomzuzwana, oku kufundisa nabani na SysAdmin elungileyo into ebalulekileyo. Ukuba umntu uza kwenza ifayile ye- Iskripthi seShell Ukusetyenziswa ngaphaya kwanamhlanje, kuhlala kungcono zibhale ngendlela enobuchule kwaye ibekwe emgangathweni, ukwenzela ukuba ekuhambeni kwexesha, nabani na ongomnye, okanye isiqu sakho, abe nako umgudu omncinci nolwazi ukufezekisa ukuqonda kunye nolawulo ubuncinci bexesha.

Ke ngoko, emva kothotho olusebenzayo lokupapashwa kwi "Funda Iskripthi SikaShell" Apho sivavanya khona ezinye zeempendulo ezisebenzayo kunye nemiyalelo elula nesisiseko, siza kuqala ngolu thotho lutsha lubizwa "Eyona ndlela isebenzayo yokwenza iShell script kwiGNU / Linux", Apho siza kugxila kuyo yonke into encinci kunye nesizathu sezinto ezininzi, oko kukuthi, siza kugquma ezinye iingcebiso eziza kusenza senze izikripthi ezingcono, kodwa hayi kakhulu kuthi, kodwa kumntu olandelayo (iSysAdmin) kufuneka uzilawule. Ke awunyanzelekanga ukuba udlule kulomsebenzi uyindinisa kwaye unzima wokuqonda ukuba yeyiphi ikhowudi, njani kwaye ngoba, kwaye kutheni ingasebenzi.

Kule nto yokuqala (1st) iposti kolu ngcelele lutsha "Eyona ndlela isebenzayo yeSkripthi esifanelekileyo seShell seGNU / Linux" Siza kuthetha malunga nento ehamba okanye ekufuneka iye kwi Isihloko seShell seSkripthi.

=====================================================================
INTLOKO - UKUMISWA KWETYELA
=====================================================================

#! / umendo / utolike [ipharamitha-ingxoxo]

Umgca ophezulu ulwakhiwo olusisiseko apho iShell script ye-GNU / Linux icelwe khona. Izinto zayo zinokuchazwa ngolu hlobo lulandelayo:

#! => sha-bang

I-sha-bang (#!) Phezulu kweSkripthi esenziweyo okanye esiza kwenziwa yi Iskripthi esixelela iNkqubo yokuSebenza ukuba ifayile yethu iyiseti yemiyalelo eya kuthi ityiswe (iya kutolikwa) ngumtoliki womyalelo oboniswe emva kwayo. Isibini sabalinganiswa #! eneneni, yi- inombolo yomlingo i-byte ezimbini, umakishi okhethekileyo chonga uhlobo lwefayile, kwaye kwimeko yethu, Iskripthi esisebenzayo seShell. Ngokukhawuleza emva kwe-sha-bang kuza igama lika Indlela apho itoliki iza kwenziwa khona kunye negama lotoliki leyo. Ngamanye amagama, nantsi indlela eya kwinkqubo etolika imiyalelo kwiskripthi, nokuba itoliki, ulwimi lwenkqubo, okanye isixhobo. Eli qokobhe emva koko lenza imiyalelo kwiskripthi, ukuqala phezulu (umgca emva kwe-sha-bang), kunye nokungahoyi naziphi na izimvo. Abanye hayi bang Banokuba zezi:

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

Umqolo ngamnye ochazwe apha ngasentla (njengomzekelo) ubiza iqokobhe elahlukileyo. Umgca / bin / sh, bizani i iqokobhe ngokungagqibekanga (UBhash kwiNkqubo yokuSebenza ye-GNU / Linux) okanye enye efanayo. Sebenzisa #! / bin / shIxabiso elingagqibekanga le IBourne Shell Uninzi lweentengiso ezahlukileyo zeNkqubo yokuSebenza esekwe kwi-UNIX, yenza iScript esenziwe ephathekayo kwezinye iiNkqubo ezisebenzayo ezingezizo iiLinux ngokufanelekileyo, kodwa iyafana okanye isekwe kuyo okanye kwi-UNIX, nangona oku kuncama iimpawu ezithile ze-BASH. Nangona kunjalo, ulandelelwano "#! / Bin / sh" ingqamana nesiqhelo Umgangatho wePOSIX sh.

Gcina ukhumbule ukuba indlela enikwe kwi-sha-bang kufuneka ichanekile, kungenjalo umyalezo wempazamo, ngesiqhelo "Umyalelo awufunyanwa", iya kuba sisiphumo kuphela sokwenziwa kwesikripthi. Khumbula izibini zomlinganiswa »#! « inokukhutshelwa ngaphandle ukuba iSkripthi sineeseti zemiyalelo yesiqhelo yokusebenza, oko kukuthi, ngaphandle kokusebenzisa izikhokelo zangaphakathi zeShell. Kwaye ugcine engqondweni kwakhona »#! / Ibhini / sh« ibiza itoliki yesiseko yegobolondo, engagqibeki kuyo »#! / Ibhin / ibash« kwiqela kunye naye Inkqubo yokusebenza ye-GNU / Linux.

Ngokubhekisele kwiimpikiswano, zininzi izinto ezinokusetyenziswa kodwa eyona ixhaphakileyo yile: »-E«. eyenza iskripthi qinisekisa iimpazamo zokwenza nawuphi na umyaleloo (umgca wokwenza) kwaye ukuba kulungile, inyanzela ukuma kunye nokuphuma, eqhelekileyo yile »-F« for bonisa ukuba yeyiphi incwadi oza kuyilayisha kwaye enye yezona zinqabileyo »-Rm« eyenza ukucinywa kwayo xa ukwenziwa kwayo kugqityiwe. Kuyenzeka ukuba uchaze kwifayile ye- hayi bang ukuya kuthi ga impikiswano enye (ipharamitha) emva kwegama lenkqubo eza kwenziwa.

Kwaye ekugqibeleni, xelela iskripthi umahluko wehlabathi oza kuwusebenzisa kwiindawo ezibalulekileyo zekhowudi yakho, Ukuqinisekiswa kweziganeko, ezinje ngomsebenzi wokuphumeza, umsebenzisi ogunyazisiweyo, igama leskripthi, phakathi kwabanye Kwaye uphele nge- idatha yenkqubo, umyili, umbutho, phakathi kwabanye, kunye nelayisensi esebenzayo kwinkqubo.

Ingcebiso yam (ezona ndlela zilungileyo) ukukhetha i Eyona sha-bang kunye nesihloko a Iskripthi seShell Zizo:

#! / usr / bin / env bash

Kutheni usebenzisa lo myalelo »Umvuzo« Sibonisa kwiNkqubo yokuSebenza itoliki ukuba isetyenziswe kunye ngqo nendlela echazwe kuyo ngokungagqibekanga, esivumela ukuba sibe hayi bang eyonyusa ukubakho kwayo, kuba ayizizo zonke I-OS GNU / Linux iitoliki okanye iinkqubo zinendlela efanayo. Ngaphandle kokuphikisana, kuba kungcono ukusebenzisa lo myalelo iseti, kuba kunye naye sinako Qinisekisa iimpazamo, ngokubanzi (-e) okanye ezithile (+ x / -x), okanye ku Cacisa ukucwangciswa kwehlabathi kokusingqongileyo (-i) okanye okhethekileyo (-u / –unset) eziguquguqukayo. Kwaye ekugqibeleni, ukuya phumeza izinto ezithile ezincedisayo (- o) ngaphakathi kweskripthi.

Ke i-HEADER yam ecetyiswayo iya kuba:

#! / usr / bin / env bash
# Bonisa itoliki yetash ngomendo opheleleyo ngeNkqubo yokuSebenza.

setha -o errexit
# Ukuxelela iskripthi ukuba siyeke kwaye sivale xa umyalelo okanye umgca wokuphunyezwa usilela.

setha -o isibizo
# Ukuxelela iskripthi ukuba siyeke kwaye sivale xa iskripthi sizama ukusebenzisa izinto ezingachazwanga.

setha -o pipefail
# Ukufumana imeko yokuphuma komyalelo wokugqibela obuyise ikhowudi yokuphuma engekho zero.

# setha -o xtrace
# Ukulandela ukuba yintoni ebalekayo. Iluncedo ukulungisa ingxaki. Nika amandla ukukhangela iimpazamo kuphela.

Khumbula ukongeza ukulandela ezi ngcebiso:

01.-indente ikhowudi yakho: Ukwenza ikhowudi yakho ifundeke kubaluleke kakhulu, kwaye yinto abantu abaninzi ekubonakala ngathi bayayilibala. Zama ukwenza izinyanzeliso eziyimfuneko ukuze ubone ulungelelwaniso olulungileyo emehlweni.

02.- Yongeza izithuba zokwahlula phakathi kwamacandelo ekhowudi: Oku kunokunceda ukwenza ikhowudi iqondakale ngakumbi, kuba ukushiyana kweemodyuli okanye amacandelo kunceda ekwenzeni ikhowudi ifundeke kwaye kube lula ukuyiqonda.

03.- Nika ingxelo kangangoko kunokwenzeka malunga nekhowudi: Phezulu (okanye ezantsi) kuMyalelo ngamnye woLawulo (uMgaqo wokuPhunyezwa) okanye iCandelo leKhowudi, kufanelekile ukongeza inkcazo yomsebenzi weskripthi (s) ukucacisa okwenzekayo ngaphakathi kwekhowudi uqobo.

04.- Yenza izinto eziguquguqukayo ngamagama achazayo emisebenzi yazo: Nika amagama achazayo aguqukayo abonisa ngokucacileyo umsebenzi oza kuyenzelwa. Nokuba udala izinto eziguquguqukayo zexeshana ezingasokuze zisetyenziswe ngaphandle kwebhloko enye yekhowudi, kuselungile ukubeka igama elichazayo (ngokuchanekileyo) elichaza amaxabiso okanye imisebenzi eliyisebenzisayo.

05.- Sebenzisa i-syntax VARIABLE = $ (command) endaweni yomyalelo: Ukuba ufuna ukwenza umahluko onexabiso elithatyathwe komnye umthetho, zimbini iindlela zokwenza kwi-bash. Kunye umvaOko kukuthi, ngabalinganiswa `` , Umzekelo: VARIABLE = `command -options parameters`, kodwa sele yehlisiwe, ke is syntax VARIABLE = $ (umyalelo) yeyona ndlela yakutshanje, eyamkelekileyo necetyiswayo. HAYI -> UMHLA = `umhla +% F` / EWE -> UMHLA = $ (umhla +% F)

06.- Sebenzisa i-Superuser kunye neeModyuli zokuGunyazisa uMsebenzisi ezigunyazisiweyo kunye / okanye izinto eziguquguqukayo kunye okanye ngaphandle kwephasiwedi: Ukunyusa amanqanaba okhuseleko xa kukho imfuneko.

07.- Sebenzisa iimodyuli kunye / okanye izinto eziguquguqukayo zokuQinisekiswa kweNkqubo yokuSebenza (Distro, Version, Architecture): Ukuthintela ukusetyenziswa kweqonga elingafanelekanga.

08.- Sebenzisa iimodyuli (iinkqubo / amacandelo) ukuqinisekisa ukwenziwa kweentshukumo ezibalulekileyo okanye zebatch (iimodyuli / imisebenzi): Ukunciphisa iimpazamo ngenxa yokuphucuka okanye ukungakhathali.

09.- Nika uMsebenzisi iiNdawo zoMdibaniso woBuntu (kusebenziseka lula): Kwitheminali ngamamenyu kunye nemibala nge incoko kunye kunye Ujongano lweMizobo yaBasebenzisi abaSisiseko ngeZenity, Gxmessage. Kwaye ukuba kunokwenzeka sebenzisa inkxaso yezilumkiso zonyana ezichonga imicimbi eyaziwayo ngokwesandi. Ndizamile kangangoko ukuba iScript sakho sinakho sebenza zombini iindlela ngokwenza nje kunye nokukhubaza ukhetho / iimodyuli / imisebenzi.

10.- Bandakanya iimodyuli zokwamkela kunye nokuvalelisa (imiyalezo): kwimeko apho kukho imfuneko yokwandisa unxibelelwano nomsebenzisi.

11.- Faka imodyuli yokuqinisekisa eyenziweyo: Yenza ifayile yokutshixa ukuyikhusela ekuphunyezweni ngaphezulu kwesihlandlo esinye ngexesha elinye.

Ukuhlengahlengisa ubungakanani beskripthi ngemisebenzi yangaphandle kunye / okanye iimodyuli: Ukuba iskripthi sikhulu kakhulu sahlulahlula ikhowudi usebenzisa imisebenzi okanye sahlule kwizikripthi ezincinci ezenziwa ngendlela ephambili.

13.- Ukubongoza ngendlela ecacileyo necacileyo yeminxeba eya kwezinye iitolikisi (iilwimi zenkqubo) ngaphakathi kweSkripthi: Bameme ngokucacileyo ngemigca okanye iimodyuli.

Umzekelo:

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

Kwiimpapasho ezizayo siya kwandisa ngokweenkcukacha nganye kwezi zinto zichazwe apha ngasentla.

Kwaye ukuba uyazi ezinye izinto ezilungileyo ezenziwayo, ezakho okanye ezabanye, ungathandabuzi ukubeka izimvo kuzo ukwenza ingxelo egqibeleleyo!

Kude kube kukupapashwa okulandelayo kolu ngcelele lutsha.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   UMax j ​​rodriguez sitsho

    Ingcaciso nje enye, yi "shebang" 😛
    Iposti elungileyo kakhulu, iinkqubo ezilungileyo ekuhambeni kwexesha zihlala zinceda ukumisela umgangatho.

  2.   Lowo udlule apha sitsho

    I-Bash ayiloqokobhe elingagqibekanga kulo lonke unikezelo, kwaye ke ikhonkco / ibin / sh elingumfuziselo ayisoloko ikhomba ku-bash. Kwi-Debian umzekelo (kwaye ndicinga ukuba Ubuntu):
    $ ls -l / bin / sh
    lrwxrwxrwx 1 ingcambu yeengcambu 4 aza 8 2014 / bin / sh -> dash
    Igobolondo engagqibekanga ngoko kwi-Debian idash. Bona apha: https://wiki.debian.org/Shell

  3.   akunagama sitsho

    Njengengcebiso yokwazi iShell eSetyenziswayo:

    echo $ 0
    Ngqina $ SHELL
    ENV | grep KAKHULU

  4.   Ing. UJoseph Albert sitsho

    Unyanisile! Ndivavanye i-DEBIAN 9 kunye ne-Kali Linux 2.0 kwaye yinyani! kukuthatha ukuba udlule. Ngapha koko ingcebiso ka: #! / Usr / bin / env bash ukuba iyiShell ofuna ukuyisebenzisa.

    Kwaye uchanekile ngokuchanekileyo yiShebang, kodwa kwezinye iiwebhusayithi (ubugcisa bokubhala) bayibiza ngokuba yi-shabang okanye amanye amagama, kungoko ukudideka kwam. Umzekelo:

    Kwikhompyuter, i-shebang lulungelelwaniso lomlinganiswa oluquka uphawu lweenombolo kunye nophawu lwesikhuzo (#!) Ekuqaleni kweskripthi. Ikwabizwa ngokuba yi-sha-bang, [1] [2] hashbang, [3] [4] pound-bang, [5] okanye hash-pling

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

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

  5.   Ing. UJoseph Albert sitsho

    Kwakhona: igama lesiseko $ 0