Tosaitheoirí Treoir A BASH - Coinníollacha agus Athróg

Réamhrá

Fáilte go dtí an tríú cuid den "Beginners Guide To BASH". Má chaill tú an dá alt roimhe sin, b'fhéidir gur mhaith leat a fháil amach cad a dhéanann an treoir seo difriúil le treoracha scríbhneoireachta BASH eile.

Tá an treoir seo á scríobh ag novice iomlán go BASH agus mar sin léitheoir a fhoghlaimíonn tú mar a fhoghlaimím. Cé go bhfuil mé ina novice go BASH, déanaim as cúlra forbartha bogearraí cé go raibh an chuid is mó de na rudaí a scríobh mé le haghaidh ardán Windows.

Is féidir leat an chéad dá threoir a fheiceáil trí chuairt a thabhairt:

Má tá tú nua le scripteáil BASH, molaim léamh an chéad dá threoir roimh leanúint leis an gceann seo.

Sa treoir seo, beidh mé ag béim ar conas ráitis choinníollach a úsáid chun ionchur úsáideora a thástáil agus chun rialú a dhéanamh ar conas a oibríonn script.

Suiteáil rsstail

D'fhonn an treoir seo a leanúint, beidh ort iarratas a dhéanamh ar líne orduithe ar a dtugtar rsstail a úsáidtear chun fothaí RSS a léamh.

Má tá tú ag úsáid cineál dáileacháin Debian / Ubuntu / Mint seo a leanas:

sudo apt-get install rsstail

Is éard atá i gceist le Fedora / CentOS srl an méid seo a leanas:

yum shuiteáil rsstail

Do chineál openSUSE an méid seo a leanas:

zypper shuiteáil rsstail

Ráiteas IF

Oscail críochfort agus cruthaigh comhad ar a dtugtar rssget.sh trí chlóscríobh na nithe seo a leanas:

sudo nano rssget.sh

Laistigh den eagarthóir nanaithe cuir isteach an téacs seo a leanas:

#! / bin / bash
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;

Sábháil an comhad trí CTRL agus O a bhrú agus ansin scoir trí CTRL agus X a bhrú.

Rith an script tríd an méid seo a leanas a chlóscríobh:

sh rssget.sh

Cuirfidh an script liosta teidil ar ais ó fhotha RSS linux.about.com.

Ní scríbhneoireacht ró-úsáideach é toisc go n-aisghabhann sé ach na teidil ó aon fhotha RSS amháin ach go ndéanann sé cuimhneamh ar an gcosán go dtí RSS feed Linux.about.com.

Oscail an script rssget.sh in nano arís agus cuir an comhad in eagar mar seo a leanas:

#! / bin / bash

más rud é [$ 1 = "verbose"]
ansin
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
fi

Rith an script arís leis an méid seo a leanas a chlóscríobh:

sh rssget.sh verbose

An uair seo tagann fotha RSS ar ais leis an teideal, an nasc agus an tuairisc.

Déanfaimid anailís a dhéanamh ar an script beagán mionsonraithe:

Taispeánann an #! / Bin / bash i ngach script a scríobhann muid. Breathnaíonn an chéad líne eile go bunúsach ar an gcéad pharaiméadar ionchuir a sholáthraíonn an t-úsáideoir agus é a chur i gcomparáid leis an bhfocal "verbose". Má tá an paraiméadar ionchuir agus an focal "verbose" na línte idir ansin agus go bhfuil siad ar siúl.

Is léir go bhfuil an script thuas lochtach. Cad a tharlaíonn mura soláthraíonn tú paraiméadar ionchuir ar chor ar bith? Is é an freagra ná go bhfaighidh tú earráid de réir oibreoirí gan choinne.

Is é an locht mór eile ná mura gcuireann tú an focal "verbose" ar fáil, ní tharlaíonn aon rud ar bith. Go hidéalach, mura gcuireann tú an focal ar fáil, cuirfí liosta teidil ar ais.

Bain úsáid as nano arís chun an comhad rssget.sh a chur in eagar agus an cód a leasú mar seo a leanas:

#! / bin / bash

más rud é [$ 1 = "verbose"]
ansin
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
eile
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi

Sábháil an comhad agus é a reáchtáil tríd an méid seo a leanas a chlóscríobh:

sh rssget.sh verbose

Beidh liosta de na teidil, na tuairiscí agus na naisc le feiceáil. Ritheann sé arís é mar a leanas:

teidil rssget.sh sh

An uair seo, níl ach liosta de na teidil le feiceáil.

Tá an chuid bhreise den script ar líne 4 agus tugtar isteach an ráiteas eile . Go bunúsach, deir an script anois má tá an chéad pharaiméadar sa focal "verbose", faigh an tuairisc, naisc agus na teidil don fhotha RSS ach más rud é nach bhfuil an chéad pharaiméadar ar bith eile ach liosta teidil a fháil.

Tá feabhas beagán tagtha ar an script ach tá sé fós lochtach. Mura dteipeann tú isteach ar pharaiméadar gheobhaidh tú earráid fós. Fiú má thugann tú paraiméadar, ach trí rá nach bhfuil tú ag iarraidh ní chiallaíonn verbose gur mhaith leat teidil amháin. B'fhéidir go bhfuil tú ach litrithe mícheart mar shampla nó d'fhéadfadh go mbeadh colún clóscríofa agat nach bhfuil gan brí ar ndóigh.

Sula ndéanaimid triail as na saincheisteanna seo a ghlanadh, ba mhaith liom ceannas níos mó a thaispeáint duit a théann leis an ráiteas IF.

Athraigh do script rssget.sh chun breathnú mar seo a leanas:

#! / bin / bash

más rud é [$ 1 = "go léir"]
ansin
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "cur síos"]
ansin
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

eile
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi

Chinn mé fáil réidh leis an focal verbose agus chuir sé in áit é. Ní hé sin an chuid thábhachtach. Tugann an script thuas elif ar a bhfuil bealach gairid ag rá ELSE IF.

Anois oibríonn an script mar seo a leanas. Má reáchtálann tú rssget.sh go léir , gheobhaidh tú tuairiscí, naisc agus teidil. Más rud é ina ionad sin, reáchtálann tú tuairisc sh rssget.sh ach gheobhaidh tú teidil agus tuairiscí. Má sholáthraíonn tú aon fhocal eile gheobhaidh tú liosta teidil.

Tugann sé seo bealach chun liosta de na ráitis choinníollach a chur ar bun go tapa. Is é bealach malartach ELIF a dhéanamh ná úsáid a bhaint as na ráitis neadaithe de chuid IF.

Seo a leanas sampla a léiríonn an chaoi a n-oibríonn ráitis neadaithe IF:

#! / bin / bash

más rud é [$ 2 = "aboutdotcom"]
ansin
más rud é [$ 1 = "go léir"]
ansin
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "cur síos"]
ansin
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

eile
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
eile
más rud é [$ 1 = "go léir"]
ansin
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "cur síos"]
ansin
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
eile
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi

Más mian leat saor in aisce a dhéanamh i ngach ceann is dá mba mhaith leat é nó í a chóipeáil agus é a ghreamú isteach i do chomhad rssget.sh.

Tugtar an dara paraiméadar isteach sa script thuas a ligeann duit "about.com" nó "lxer.com" a roghnú mar fhotha RSS.

Chun é a reáchtáil, clóscríobh tú sa méid seo a leanas:

sh rssget.sh gach aboutdotcom

sh rssget.sh gach lxer

Is féidir leat cur síos ar gach duine le tuairiscí nó teidil chun cur síos díreach a thabhairt nó teidil amháin.

Go bunúsach deir an cód thuas má tá an dara paraiméadar faoi dhroim faoi dhó, ansin féach an dara ceann má tá ráiteas mar an gcéanna amháin ón script eile más rud é go bhfuil an dara paraiméadar lxer agus ansin féachaint ar an taobh istigh má tá ráiteas arís chun cinneadh a dhéanamh maidir le teidil, tuairiscí a thaispeáint nó gach rud.

Tá an script sin ar fáil ach mar shampla de ráiteas neadaithe IF agus tá an oiread rudaí mícheart leis an script sin go dtógfadh sé alt eile chun iad a mhíniú go léir. Is í an phríomhcheist ná nach bhfuil sé inbhuanaithe.

Samhlaigh gur theastaigh uait fotha RSS eile a chur ar fáil, mar shampla Úsáideoir Linux Laethúil nó Linux Today? Thiocfadh an script chun bheith ollmhór agus má shocraigh tú go raibh tú ag iarraidh an ráiteas inmheánach IF a athrú bheadh ​​ort é a athrú in áiteanna éagsúla.

Cé go bhfuil am agus áit ann do IF neadaithe ba chóir iad a úsáid go gasta. De ghnáth is bealach duit do chód a athfheistiú ionas nach gá duit an IF neadaithe ar chor ar bith. Tabharfaidh mé an t-ábhar seo in airteagal amach anseo.

Breathnaímid anois ar cheist na ndaoine a théann isteach i bparaiméadar duff a shocrú. Mar shampla sa script thuas má thugann an t-úsáideoir rud éigin seachas "aboutdotcom" mar an 2ú paraiméadar ansin tá liosta de na hailt le feiceáil ó fhotha RSS ó LXER beag beann ar an úsáideoir a chuireann isteach ar lxer nó nach ea.

Ina theannta sin mura gcuireann an t-úsáideoir "gach" nó "cur síos" isteach mar an 1ú paraiméadar ansin is é an réamhshocrú liosta de na teidil a d'fhéadfadh a bheith nó nach bhfuil an t-úsáideoir beartaithe.

Féach ar an script seo a leanas (nó cóip é agus é a ghreamú isteach i do chomhad rssget.sh.

#! / bin / bash

más rud é [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
ansin
más rud é [$ 1 = "go léir"] || [$ 1 = "cur síos"] || [$ 1 = "teideal"]
ansin
más rud é [$ 2 = "aboutdotcom"]
ansin

más rud é [$ 1 = "go léir"]
ansin
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "cur síos"]
ansin
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

eile
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
eile
más rud é [$ 1 = "go léir"]
ansin
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "cur síos"]
ansin
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
eile
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi

Is é an chéad rud atá le tabhairt faoi deara ná go bhfuil an script ag éirí go mór anois agus is féidir leat a fheiceáil go tapa conas is féidir le ráitis neamhnithe Níos Mó a bheith ann.

Is é an rud atá tábhachtach sa script seo an ráiteas IF ráiteas AN t-alt SEO ar líne 2 agus líne 4.

An || Seasann le haghaidh OR. Mar sin, an líne má [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"] seiceáil an bhfuil an 2ú paraiméadar comhionann le "aboutdotcom" nó "lxer". Mura bhfuil sé ansin níl an ráiteas IF críochnaithe toisc nach bhfuil aon ráiteas eile ann don chuid is mó IF.

Mar an gcéanna ar líne 4 an líne más rud é [$ 1 = "go léir"] || [$ 1 = "cur síos"] || [$ 1 = "teideal"] seiceann an bhfuil an 1ú paraiméadar comhionann le "gach" nó "cur síos" nó "teideal".

Anois, má ritheann an t-úsáideoir rssget.sh bátaí prátaí, níl aon rud ar ais ach sula bhfuair siad liosta teidil ó LXER.

An os coinne de || is &&. Seasann an t-oibreoir && le haghaidh AND.

Táim ag déanamh an chuma ar an script níos mó cosúil le hiasleabhar ach déanann sé an seiceáil tábhachtach go léir chun a chinntiú go bhfuil 2 pharaiméadar curtha ar fáil ag an úsáideoir.

#! / bin / bash

más rud é [$ # -eq 2]
ansin

más rud é [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
ansin
más rud é [$ 1 = "go léir"] || [$ 1 = "cur síos"] || [$ 1 = "teideal"]
ansin
más rud é [$ 2 = "aboutdotcom"]
ansin

más rud é [$ 1 = "go léir"]
ansin
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "cur síos"]
ansin
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

eile
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
eile
más rud é [$ 1 = "go léir"]
ansin
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "cur síos"]
ansin
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
eile
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi
fi

Is é an t-aon giotán atá breise sa script sin ráiteas eile seachtrach IF mar seo a leanas: más rud é [$ # -eq 2] . Má léitear an t-alt faoi na paraiméadair ionchuir, beidh a fhios agat go dtagann $ # tuairisceán ar líon na bparaiméadar ionchuir. Seasann an -eq le haghaidh cothrom. Seiceann an ráiteas IF, dá bhrí sin, go ndearna an t-úsáideoir 2 pharaiméadar agus más rud é nach raibh sé ag dul amach ach gan aon ní a dhéanamh. (Gan cairdiúil go háirithe).

Tá a fhios agam go bhfuil an teagaisc seo ag éirí go mór. Níl mórán níos mó ann ná an tseachtain seo a chlúdach ach ba mhaith liom cuidiú leis an script a shlachtú sula n-éireoidh linn.

Is é an t-ordú deireanach amháin gur gá duit a fhoghlaim faoi ráitis choinníollach an ráiteas CASE.

#! / bin / bash


más rud é [$ # -eq 2]
ansin
cás $ 2 in
aboutdotcom)
cás $ 1 in
go léir)
rsstail -d -l -u z.about.com/6/o/m/linux_p2.xml
;;
cur síos)
rsstail -d -u z.about.com/6/o/m/linux_p2.xml
;;
teideal)
rsstail -u z.about.com/6/o/m/linux.about.com/6/o/m/linux_p2.xml
;;
esac
;;
lxer)
cás $ 1 in
go léir)
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
;;
cur síos)
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
;;
teideal)
rsstail -u http://lxer.com/module/newswire/headlines.rss
;;
esac
;;
esac
fi

Is bealach níos éifeachtaí é an ráiteas cáis a scríobh I MÁS ELSE MÁ TÁ MÁS MÁ TÁ FÁIL.

Mar shampla, an loighic seo

MÁ torthaí = bananaí
ANOIS seo
ELSE MÁ torthaí = oráistí
ANOIS seo
ELSE MÁ torthaí = fíonchaora
ANOIS seo
CRÍOCH MAI

Is féidir é a athscríobh mar:

torthaí i
bananaí)
déan seo
;;
oráistí)
déan seo
;;
fíonchaora)
déan seo
;;
esac

Go bunúsach is é an rud atá tú ag dul i gcomparáid (ie torthaí) an chéad rud tar éis an cháis. Ansin, is é gach rud atá os comhair na lúibíní an rud atá tú i gcomparáid lena chéile agus má chomhlíonann sé na línte roimh ré ;; ar siúl. Críochnaítear cás-ráiteas leis an esac droim ar ais (a bhfuil cás siar).

Sa script rssget.sh, cuireann an cás-ráiteas cuid den neadú uafásach sin agus ní fheabhsaíonn sé go leor é i ndáiríre.

Chun an script a fheabhsú i ndáiríre ní mór dom tú athruithe a thabhairt isteach.

Féach ar an gcód seo a leanas:

#! / bin / bash

lxer = "lxer.com/module/newswire/headlines.rss"
aboutdotcom = "z.about.com/6/o/m/linux_p2.xml"
taispeáin = ""
url = ""

más rud é [$ # -lt 2] || [$ # -gt 2]
ansin
macalla "úsáid: rssget.sh [léir | tuairisc | teideal] [aboutdotcom | lxer]";
an slí amach;
fi

cás $ 1 in
go léir)
taispeáint = "- d -l -u"
;;
cur síos)
taispeáin = "- d -u"
;;
teideal)
taispeáint = "- u"
;;
esac

cás $ 2 in
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
esac
rsstail $ display $ url;

Déantar athróg a shainmhíniú trí ainm a thabhairt dó agus luach a shannadh dó. Sa sampla thuas, is iad seo a leanas na tascanna athróga:

lxer = "lxer.com/module/newswire/headlines.rss"
aboutdotcom = "z.about.com/6/o/m/linux_p2.xml"
taispeáin = ""
url = ""

Tá an script níos inbhainistithe láithreach trí athróga a úsáid. Mar shampla, déantar gach paraiméadar a láimhseáil ar leithligh agus mar sin níl aon ráitis neamhnithe IF ann.

Tá an t-athróg taispeántais leagtha síos anois ag brath ar cibé an roghnaigh tú an t-iomlán, an tuairisc nó an teideal agus go bhfuil an t-athróg urlí leagtha síos ar luach an athróg aboutdotcom nó ar luach an athróg lxer ag brath ar roghnaigh tú aboutdotcom nó lxer.

Caithfidh an t-ordú rsstail ach luach taispeána agus url a úsáid a reáchtáil i gceart.

Cé go socraítear athróg díreach trí ainm a thabhairt dóibh, chun iad a úsáid i ndáiríre ní mór duit comhartha $ a chur os comhair iad. I bhfocail eile, athraíonn luach = luach athraitheach ar luach ach ciallaíonn athróg $ ábhar an athróg dom.

Seo a leanas an script deiridh don teagasc seo.

#! / bin / bash

lxer = "lxer.com/module/newswire/headlines.rss"
aboutdotcom = "z.about.com/6/o/m/linux_p2.xml"
everydaylinuxuser = "http://feeds.feedburner.com/everydaylinuxuser/WLlg"
linuxtoday = "http://feedproxy.google.com/linuxtoday/linux"
úsáid = "úsáid: rssget.sh [léir | tuairisc | teideal] [lxer | aboutdotcom | everydaylinuxuser | linuxtoday]"
taispeáin = ""
url = ""

más rud é [$ # -lt 2] || [$ # -gt 2]
ansin
macalla $ úsáid;
an slí amach;
fi

cás $ 1 in
go léir)
taispeáint = "- d -l -u"
;;
cur síos)
taispeáin = "- d -u"
;;
teideal)
taispeáint = "- u"
;;
*)
macalla $ úsáid;
an slí amach;
;;
esac

cás $ 2 in
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
linuxtoday)
url = $ linuxtoday;
;;
everydaylinuxuser)
url = $ everydaylinuxuser;
;;
*)
macalla $ úsáid;
an slí amach;
esac

rsstail $ display $ url;

Tugann an script thuas feeds RSS níos mó agus tá athróg úsáide ann a insíonn don úsáideoir conas an script a úsáid mura dtéann siad 2 athróg isteach nó má roghnaíonn siad roghanna mícheart do na hathróga.

Achoimre

Ba é seo an t-alt eipiciúil agus d'fhéadfadh sé a bheith ró-bhfad ró-luath. Sa chéad treoir eile, taispeánfaidh mé na roghanna comparáideacha go léir do ráitis IF agus tá níos mó fós ann chun labhairt faoi na hathróga.

Tá níos mó ann freisin a fhéadfar a dhéanamh chun an script thuasluaite a fheabhsú agus beidh sé seo clúdaithe i dtreoracha sa todhchaí nuair a dhéanaimid iniúchadh ar lúb, léiriú grep agus rialta.

Féach ar an leathanach Conas a (Scrollaigh síos na catagóirí le liosta d'ailt a fheiceáil) le l inux.about.com chun treoracha níos úsáideacha a aimsiú ó Windows Booting agus Ubuntu dé chun meaisín fíorúil a shuiteáil ag baint úsáide as boscaí GNOME .