Na cleachtais is fearr chun Script Shell a chruthú in GNU / Linux

De ghnáth nuair a thosaíonn tú ag obair ar an Réimse riaracháin Freastalaithe le Córais Oibriúcháin GNU / Linux agus / nó Unix, aimsíonn duine tú féin (aghaidheanna) ag obair i dtimpeallacht ina mbíonn a bunch de thascanna sceidealta a scríobh admins eile agus go gcaithfimid ag pointe éigin bainistíocht (riaradh) do aon fhadhb a réiteach, a fheabhsú agus / nó a dhíchur, chun ceanglas nua de chuid na hInstitiúide a chomhlíonadh áit a n-oibríonn sé. Mar sin níl sé aisteach, go bhfuil aon nua SysAdmin In aon ionad oibre, bíonn ort an tasc trom a thuiscint cuid de na Script Shell cruthaithe ag daoine eile sean-SysAdmin, nach bhfuil scríofa go maith, nó atá i struchtúr loighciúil nó scríbhneoireachta, nach bhfuil furasta a thuiscint, nó sa chás is measa, le horduithe ordaithe, aitíopúla, sean, mí-éifeachtach, nó scríofa ar bhealach corraitheach agus mearbhall.

Scríbhneoireacht ShellCé go scripteanna nach bhfuil scríofa go maith a réiteach i gcónaí annoyance momentary, múineann sé seo do dhuine ar bith SysAdmin maith rud éigin tábhachtach. Má tá ceann ag dul a chruthú a Script Shell is fearr i gcónaí é a úsáid níos faide an lá inniu iad a scríobh ar bhealach an-ghairmiúil agus caighdeánaithe, ionas gur féidir le duine ar bith eile, nó leis féin, leis an déanann an iarracht agus an t-eolas is lú tuiscint agus riarachán a bhaint amach in a laghad ama.

Dá bhrí sin, tar éis na sraithe praiticiúla foilseachán ar "Foghlaim Scripteáil Shell" áit a scrúdaímid roinnt scripteanna an-phraiticiúla le horduithe simplí agus bunúsacha, tosóimid leis an tsraith nua seo ar a dtugtar "Na cleachtais is fearr chun Script Shell a chruthú in GNU / Linux", áit a ndíreoimid go críochnúil ar gach gné bheag de agus an chúis atá le go leor rudaí, is é sin, clúdóimid roinnt leideanna a fhágfaidh go mbeidh orainn scripteanna níos fearr a dhéanamh, ach ní an oiread sin dúinn féin, ach don chéad duine eile (SysAdmin) a chaithfidh a dhéanamh iad a bhainistiú. Mar sin ní gá duit dul tríd an tasc slachtmhar deacair a dhéanamh amach cad a chódaím, conas agus cén fáth, agus cén fáth nach n-oibríonn sé a thuilleadh.

Sa an chéad phost (1ú) den tsraith nua seo "Na cleachtais is fearr le haghaidh Script Shell maith do GNU / Linux" Déanfaimid labhairt faoi na rudaí a théann nó ba chóir dul sa Ceanntásc Script Shell.

=======================================
CEANN CEANN - INFHEISTÍOCHT AN SHELL
=======================================

#! / path /pret [paraiméadar-argóint]

Is í an líne barr an bunstruchtúr trína ndéantar Script Shell do GNU / Linux a agairt. Is féidir cur síos a dhéanamh ar a eilimintí mar seo a leanas:

#! => sha-bang

An sha-bang (#!) ag barr an Scrioptúir a cruthaíodh nó atá le cruthú tá a script a insíonn dár gCóras Oibriúcháin gur sraith orduithe é ár gcomhad a thabharfaidh an t-ateangaire ordaithe a léirítear ina dhiaidh (a léireofar). An péire carachtar #! i ndáiríre, tá sé a uimhir draíochta dhá-bheart, marcóir speisialta go ainmnigh cineál comhaid, agus inár gcás, script bhlaosc inrite. Díreach tar éis an sha-bang a thagann ainm tá an cosán ina bhfuil an t-ateangaire atá le déanamh suite suite móide ainm an ateangaire sin. Is é sin le rá, is é seo an bealach chuig an gclár a léirmhíníonn na horduithe sa script, cibé acu ateangaire, teanga cláir, nó fóntais é. Ansin déanann an bhlaosc seo na horduithe sa script a fhorghníomhú, ag tosú ag an mbarr (an líne i ndiaidh an sha-bang), agus gan neamhaird a dhéanamh ar aon tráchtanna. Roinnt sha bang Féadfaidh siad a bheith:

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

Déanann gach ceann de na línte a thuairiscítear thuas (mar shampla) sliogán difriúil a agairt. An líne / Bin / sh, agairt ar an bhlaosc de réir réamhshocraithe (Bash ar Chóras Oibriúcháin GNU / Linux) nó a leithéid eile. Ag baint úsáide as #! / Bin / sh, luach réamhshocraithe Sliogán Bourne Sa chuid is mó de na leaganacha tráchtála de Chórais Oibriúcháin atá bunaithe ar UNIX, cruthaítear an Script iniompartha chuig Córais Oibriúcháin eile nach Linux i gceart, ach cosúil leis nó bunaithe air nó UNIX, cé go ndéanann sé seo tréithe ar leith de BASH a íobairt. An seicheamh, áfach "#! / Bin / sh" i gcomhréir leis an norm Caighdeán POSIX sh.

Tabhair faoi deara go caithfidh an cosán a thugtar sa sha-bang a bheith ceart, a mhalairt de theachtaireacht earráide, de ghnáth "Ordú gan aimsiú", beidh sé mar thoradh amháin ar fhorghníomhú na scripte. Cuimhnigh an péire carachtar »#! « is féidir é a fhágáil ar lár mura bhfuil sa Script ach sraith orduithe cineálacha Córais Oibriúcháin, is é sin, gan treoracha inmheánacha Shell a úsáid. Agus coinnigh i gcuimhne arís é sin »#! / Bin / sh« agairt ar an ateangaire blaosc réamhshocraithe, a mhainníonn »#! / Bin / bash« i bhfoireann leis Córas Oibriúcháin GNU / Linux.

Maidir leis na hargóintí, tá roinnt eile ann a d’fhéadfaí a úsáid ach is é an ceann is coitianta: »-E«. a dhéanann an script earráidí forghníomhaithe aon ordaithe a bhailíochtúo (líne forghníomhaithe) agus má tá sé dearfach, cuireann an stad agus an bealach amach i bhfeidhm, tá ceann tipiciúil »-F« do tabhair le fios cén script atá le luchtú agus tá ceann de na rudaí is annamh »-Rm« a dhéanann é a scriosadh nuair a bheidh a fhorghníomhú críochnaithe. Ní féidir ach a shonrú sa sha bang suas go dtí argóint aonair (paraiméadar) tar éis ainm an chláir a reáchtáil.

Agus ar deireadh, inis an script na hathróga domhanda a úsáidfidh tú i gcodanna riachtanacha de do chód, chun imeachtaí a bhailíochtú, amhail an bealach forghníomhaithe, úsáideoir údaraithe, ainm scripte, i measc nithe eile. Agus deireadh leis an sonraí an chláir, an chruthaitheora, na heagraíochta, i measc nithe eile, móide an ceadúnú a bhaineann leis an gclár.

Mo chomhairle (Na cleachtais is fearr) a roghnú an sha-bang is fearr agus ceannteideal a Script Shell fuaime:

#! / usr / bin / env bash

Cén fáth an t-ordú a úsáid »Env« Cuirimid in iúl don Chóras Oibriúcháin an t-ateangaire atá le húsáid leis an gcosán cruinn a shonraítear ann de réir réamhshocraithe, rud a ligeann dúinn sha bang a mhéadaíonn inaistritheacht é, toisc nach bhfuil sé ar fad OS GNU / Linux tá an cosán céanna ag ateangairí nó cláir. Agus gan argóintí, mar gheall air sin is fearr an t-ordú a úsáid leagtha, mar gheall air is féidir linn earráidí a bhailíochtú, ginearálta (-e) nó sonrach (+ x / -x), nó go réamhshocruithe cruinne soiléire le haghaidh athróg comhshaoil ​​(-i) nó sonrach (-u / –unset). Agus ar deireadh, go gníomhartha comhlántacha sonracha (- o) a dhéanamh taobh istigh den script.

Mar sin bheadh ​​mo CEANN CEANN:

#! / usr / bin / env bash
# Cuir an Córas Oibriúcháin in iúl don ateangaire bash.

tacar -o errexit
# A rá leis an script stopadh agus dúnadh nuair a theipeann ar ordú nó líne forghníomhaithe.

tacar -o ainmfhocal
# A rá leis an script stopadh agus dúnadh nuair a dhéanann an script iarracht athróga neamhdhearbhaithe a úsáid.

set -o pipefail
# Chun stádas imeachta an ordaithe dheireanaigh a fháil a chuir cód imeachta neamh-nialas ar ais.

# tacar -o xtrace
# A bhfuil ar siúl a rianú. Úsáideach le haghaidh dífhabhtaithe. Cumasaigh é chun earráidí a sheiceáil amháin.

Cuimhnigh freisin na moltaí seo a leanúint:

01.- Indente do chód: Tá sé an-tábhachtach do chód a dhéanamh inléite, agus is cosúil go ndéanann go leor daoine dearmad air freisin. Déan iarracht na fleasca riachtanacha a dhéanamh chun struchtúr loighciúil maith a bhrath i radharc.

02.- Cuir spásanna deighilte idir codanna den chód: Féadann sé seo an cód a dhéanamh i bhfad níos sothuigthe, ós rud é go gcuidíonn spásáil de réir modúl nó rannán leis an gcód a dhéanamh inléite agus furasta a thuiscint.

03.- Déan trácht a oiread agus is féidir faoin gcód: Ag barr (nó bun) gach Ordaithe Ordú (Líne Forghníomhaithe) nó Rannóg an Chóid, tá sé oiriúnach tuairisc ar fheidhm na scripte / na scripteanna a chur leis chun a mhíniú cad a tharlaíonn laistigh den chód féin.

04.- Athróga a chruthú le hainmneacha tuairisciúla ar a bhfeidhmeanna: Ainmneacha tuairisciúla tuairisciúla a shannadh a shainaithníonn go soiléir an fheidhm dá gcruthófar í. Cé go gcruthaíonn tú athróga sealadacha nach n-úsáidfear go deo taobh amuigh de bhloc cód amháin, is maith fós ainm a chur a mhíníonn go hintuigthe (go hoibiachtúil) na luachanna nó na feidhmeanna a láimhseálann sé.

05.- Úsáid an chomhréir VARIABLE = $ (ordú) in ionad ordaithe: Más mian leat athróg a chruthú a bhfuil a luach díorthaithe ó ordú eile, tá dhá bhealach ann chun é a dhéanamh go bunúsach. Le ar ais tic, is é sin, leis na carachtair `` , m.sh: VARIABLE = `paraiméadair ordaithe-orduithe`, ach tá sé dímheasúil cheana féin, mar sin an chomhréir VARIABLE = $ (ordú) is é an bealach is nua-aimseartha, a nglactar leis agus a mholtar. NÍL -> DÁTA = `dáta +% F` / TÁ -> DÁTA = $ (dáta +% F)

06.- Úsáid modúil Bailíochtaithe Úsáideora Superuser agus Údaraithe agus / nó athróga le pasfhocal nó gan é: Leibhéil slándála a mhéadú más gá.

07.- Úsáid modúil agus / nó athróga de Bhailíochtú an Chórais Oibriúcháin (Distro, Leagan, Ailtireacht): chun úsáid ar ardáin mí-oiriúnacha a chosc.

08.- Úsáid modúil (nósanna imeachta / rannáin) chun forghníomhú gníomhartha criticiúla nó baisc (modúil / feidhmeanna) a dhearbhú: Botúin a íoslaghdú mar gheall ar tobchumadh nó míchúram.

09.- Comhéadain a Thacaíonn le hÚsáideoirí (Soláthraithe don Úsáideoir) a sholáthar: De réir Críochfort le biachláir agus dathanna le Agallamh agus leis Comhéadain Ghrafacha d’úsáideoirí bunúsacha le Zenity, Gxmessage. Agus más féidir, bain úsáid as tacaíocht foláirimh sonic aitheantóra d’imeachtaí inaitheanta de réir fuaime. Rinne mé a oiread agus is féidir gur féidir le do Script oibrigh an dá bhealach díreach trí roghanna / modúil / feidhmeanna a chumasú agus a dhíchumasú.

10.- Cuir modúil Fáilte agus Slán (teachtaireachtaí) san áireamh: más gá chun idirghníomhaíocht leis an úsáideoir a mhéadú.

11.- Cuir modúl fíoraithe forghníomhaithe dúbailte san áireamh: Cruthaigh comhad glasála dó le cosc ​​a chur air a fhorghníomhú níos mó ná 1 uair ag an am céanna.

12.- Réasúnú a dhéanamh ar mhéid na scripte le feidhmeanna seachtracha agus / nó modúil: Má tá an Script an-mhór, déan an cód a roinnt ag úsáid feidhmeanna nó déan iad a roinnt ina scripteanna beaga a agairt trí phríomhlíne.

13.- Agairt ar bhealach soiléir agus soiléir na glaonna chuig Ateangairí eile (teangacha cláir) laistigh den Script: Tabhair cuireadh dóibh go soiléir trí línte nó trí mhodúil.

Sampla:

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

I bhfoilseacháin amach anseo leathnóimid gach ceann de na cleachtais a thuairiscítear thuas ar bhealach níos mionsonraithe.

Agus má tá roinnt dea-chleachtas eile ar eolas agat, do chuid féin nó daoine eile, ná bíodh aon leisce ort trácht orthu chun compendium níos iomláine a dhéanamh!

Go dtí an chéad fhoilseachán eile den tsraith nua seo.


Cloíonn ábhar an ailt lenár bprionsabail eitic eagarthóireachta. Chun earráid a thuairisciú cliceáil anseo.

6 trácht, fág mise

Fág do thrácht

Ní thabharfar do sheoladh r-phoist a fhoilsiú.

*

*

  1. Freagrach as na sonraí: Miguel Ángel Gatón
  2. Cuspóir na sonraí: SPAM a rialú, bainistíocht trácht.
  3. Legitimation: Do thoiliú
  4. Na sonraí a chur in iúl: Ní chuirfear na sonraí in iúl do thríú páirtithe ach amháin trí oibleagáid dhlíthiúil.
  5. Stóráil sonraí: Bunachar sonraí arna óstáil ag Occentus Networks (EU)
  6. Cearta: Tráth ar bith is féidir leat do chuid faisnéise a theorannú, a aisghabháil agus a scriosadh.

  1.   Max j ​​rodriguez a dúirt

    Mionsonra amháin, is "shebang" 😛 é
    post an-mhaith, cuidíonn dea-chleachtais san fhadtéarma le caighdeánú.

  2.   Ceann a rith anseo a dúirt

    Ní hé Bash an bhlaosc réamhshocraithe ar gach dáileadh, agus dá bhrí sin ní bhíonn an nasc siombalach / bin / sh dírithe ar bash i gcónaí. I Debian mar shampla (agus glacaim leis mar sin Ubuntu):
    $ ls -l / bin / sh
    lrwxrwxrwx 1 fréimhe fréimhe 4 aza 8 2014 / bin / sh -> dash
    Dá bhrí sin tá an bhlaosc réamhshocraithe ar Debian Fleasc. Féach anseo: https://wiki.debian.org/Shell

  3.   gan ainm a dúirt

    Mar leid chun eolas a fháil ar an mBlaosc atá in Úsáid:

    macalla $ 0
    macalla $ SHELL
    seol | grep SHELL

  4.   Jose Albert a dúirt

    Tá an ceart agat go deimhin! Rinne mé tástáil ar DEBIAN 9 agus Kali Linux 2.0 agus tá sé fíor! tógann tú Fleasc. Níos tábhachtaí fós tá moladh: #! / Usr / bin / env bash más é an Shell atá tú ag iarraidh a úsáid.

    Agus tá tú ceart go leor is shebang é, ach ar roinnt suíomhanna Gréasáin (litríochtaí teicniúla) tugtar shabang nó focail eile air, mar sin an mearbhall atá orm. Sampla:

    Sa ríomhaireacht, is é shebang an t-ord carachtar a chuimsíonn comhartha uimhir na gcarachtar agus marc exclamation (#!) Ag tús script. Tugtar sha-bang air freisin, [1] [2] hashbang, [3] [4] punt-bang, [5] nó hash-pling

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

    Y Caibidil 2. Ag Tosú le Sha-Bang
    From: http://www.tldp.org/LDP/abs/html/sha-bang.html

  5.   Jose Albert a dúirt

    Freisin: basename $ 0