Vatangidziri Mazano Ku BASH - Mamiriro Ezvo Uye Zvimwe

Nhanganyaya

Kugamuchirwa kune chikamu chechitatu che "Mavambo Ekutanga ku BASH". Kana iwe wakarasikirwa nenyaya mbiri dzakapfuura iwe uchada kuziva kuti chii chinoita kuti mutungamiri uyu akasiyana kune mamwe maBASH scripting guides.

Uyu mutungamiri uri kunyorwa nemutevedzeri akakwana kuBASH uye somuverengi unodzidza sezvandinodzidza. Kunyange ini ndiri mucheche kuBASH Ndinouya kubva kune imwe shanduko yekugadzira software kunyange zvizhinji zvezvinhu zvandakanyora zvave zveWindows platform.

Unogona kuona mazano maviri okutanga nekushanyira:

Kana iwe uri mutsva kuBASH scripting Ndinokurudzira kuverenga mabhuku maviri okutanga usati waenderera mberi neiyo.

Muchirongwa ichi ndichave ndichijekesa kuti ndingashandisa sei zvinyorwa zvinonzwisisika kuti uedze kuiswa kwevashandi uye kuti uone kuti script inoshanda sei.

Isa efstail

Kuti uite zvinotevera mutungamiri iwe unoda kuisa murairo wemirairo wekuda unonzi rsstail inoshandiswa kuverenga RSS feeds .

Kana uri kushandisa Debian / Ubuntu / Mint based distribution distribution iyo inotevera:

sudo apt-get install rsstail

For Fedora / CentOS etc yega zvinotevera:

yum install rsstail

Kuti usvinudze TARIDZA zvinyorwa zvinotevera:

pinda install rsstail

Iyo IF IF statement

Vhura sarudzo uye ugadzire faira inonzi rssget.sh nekunyora zvinotevera:

sudo nano rssget.sh

Pakati pe nano editor pinda magwaro anotevera:

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

Chengeta faira nekudhinda CTRL uye O uye obuda nokudhinda CTRL uye X.

Runza script nekunyora zvinotevera:

sh rssget.sh

Iyo script ichadzoka runyora rwezvinyorwa kubva ku linux.about.com RSS feed.

Icho hachisi chinyorwa chinonyanya kukosha nokuti chinongowana mazita kubva kune rimwe RSS feed asi inoponesa yekuyeuka nzira inoenda ku Linux.about.com RSS feed.

Vhura script re rssget.sh nano zvakare uye shandisa faira kuti uone sezvinotevera:

#! / bin / bash

kana [$ 1 = "verbose"]
ipapo
rsstail -d-l -u http://z.about.com/6/o/m/linux_p2.xml;
fi

Runza script zvakare nekunyora zvinotevera:

sh rssget.sh verbose

Panguva ino RSS feed inodzoka nemusoro, chikwata uye tsanangudzo.

Ngationgororei script mune zvinyorwa zvishoma:

I #! / Bin / bash inowanikwa mune imwe script yatinonyora. Mutsara unotevera unotarisa pamutambo wekutanga wekushandisa unopiwa nemushandisi uye unohuenzanisa neshoko "verbose". Kana iyo piramu inowanikwa uye izwi rokuti "verbose" rinofanidza mitsara pakati peiyo na fi inomhanya.

Zviri pamusoro apa zviri pachena kuti hazvina kukwana. Chii chinoitika kana iwe usingagoni kupa parameter inowanikwa zvachose? Mhinduro ndeyo iwe unowana kukanganisa pamwe nemitsara yemunhu asingatarisiri.

Chimwe chinokanganisa chikuru ndechekuti kana iwe usingaiti shoko rokuti "verbose" hapana chakaitika zvachose. Zvakanaka kana iwe usingagoni kupa shoko verbose script ingadzoka runyora rwezvinyorwa.

Shandisa nano zvakare kuti ugadzire faira rssget.sh uye shandura kodeti seyotevera:

#! / bin / bash

kana [$ 1 = "verbose"]
ipapo
rsstail -d-l -u http://z.about.com/6/o/m/linux_p2.xml;
zvimwe
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi

Chengetedza faira uye uite izvi nekunyora zvinotevera:

sh rssget.sh verbose

Runyora rwezvinyorwa, tsanangudzo uye hukama huchaonekwa. Zvino rhanya zvakare zvakare:

sh rssget.sh mazita

Ino nguva inongorongororwa mazita ekuremekedza.

Chikamu chechipiri chekanyorwa chiri pamutsara wechina uye inotanga zvimwe zvinyorwa. Chaizvoizvo script ikozvino inotaura kana yekutanga parameter izwi rokuti "verbose" kuwana tsanangudzo, mazano uye mazita ezvokudya zve RSS asi kana yekutanga parameter chimwe chinhu chingawana runyora rwemazita.

Iko script yakavandudzwa zvishoma asi ichiri kukanganisa. Kana ukakundikana kupinda parameter iwe uchave uchinzwa kukanganisa. Kunyange kana iwe uchipa parameter, kungoti iwe haunoda verbose hazvirevi kuti iwe unoda mazita chete. Iwe unogona kunge uchitaura verbose zvakashata nenzira kana kuti iwe unogona kunge wakaita njiwa dzisingatauri.

Tisati taedza uye kujekesa nyaya idzi ndinoda kukuratidzai mumwe murairo zvakare unofamba nemashoko ekuti IF.

Rongedza script yako re rssget.sh kuti uone sezvinotevera:

#! / bin / bash

kana [$ 1 = "zvose"]
ipapo
rsstail -d-l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "tsanangudzo"]
ipapo
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

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

Ndakasarudza kubvisa shoko rokuti verbose uye rakatsiva naro nezvose. Icho hachisi chikamu chakakosha. Iyo shanduro iri pamusoro inotanga elif iyo iyo nzira shoma yekureva ESE IF.

Iye zvino script inoshanda seinotevera. Kana iwe uchimhanya sh rssget.sh zvose zvino iwe unowana tsanangudzo, hukama uye mazita. Kana pane iwe unongotanga tsanangudzo sh rssget.sh uchangobva kuwana mazita uye tsanangudzo. Kana iwe uchipa chero rimwe shoko rimwe uchawana runyora rwezita.

Izvi zvinotanga nzira yekukurumidzira kuuya neurongwa rwezvakataurwa zvinyorwa. Nzira imwe yekuita ELIF ndeyekushandisa izvo zvinozivikanwa sevakasikwa IF IF mazwi.

Iyi inotevera muenzaniso unoratidza kuti nested IF zvinyorwa zvinoshanda sei:

#! / bin / bash

kana [$ 2 = "aboutdotcom"]
ipapo
kana [$ 1 = "zvose"]
ipapo
rsstail -d-l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "tsanangudzo"]
ipapo
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

zvimwe
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
zvimwe
kana [$ 1 = "zvose"]
ipapo
rsstail -d-l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "tsanangudzo"]
ipapo
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
zvimwe
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi

Inzwa wakasununguka kuisa zvose zvayo kana iwe uchida kana kukopa nekuisa pasi rako rssget.sh file.

Tsanangudzo iri pamusoro apa inotanga 2 parameter inokutendera kusarudza kana "about.com" kana "lxer.com" iri RSS feed.

Kuti uite izvi unonyora pane zvinotevera:

sh rssget.sh zvese aboutdotcom

kana

sh rssget.sh ose lxer

Iwe unogona zvekutsvaga zvose zvine tsanangudzo kana mazita okuremekedza kuti ugova zvinyorwa zvaro kana mazita chete.

Kunyanya purogiramu iri pamusoro apa inoti kana yechipiri parameter is aboutototcom uye tarisa kune yechipiri kana chirevo ichocho chakafanana kubva pane script yapfuura zvimwe kana yechipiri parameter is lxer zvino tarisa mukati mukati memashoko kana zvakare kuti uone kana kuratidza mazita, tsanangudzo kana zvinhu zvose.

Rugwaro irworwo rwakapiwa semuenzaniso weNested IF statement uye pane zvinhu zvakawanda zvakashata nechocho script zvingatora chimwe chikamu kuti chiitsanangure zvose. Nyaya huru ndeyokuti haisi kumira.

Fungidzira iwe waida kuwedzera rimwe RSS feed seSezuva rese Linux User kana Linux Nhasi? Iyo script yaizove yakakura uye kana ukasarudza kuti iwe waida mutauro wemukati weFC kuti uchinje iwe unofanirwa kuchinja munzvimbo dzakawanda.

Kunyange pane nguva uye nzvimbo yekodha yakazara iyo inofanira kushandiswa zvishoma. Pane kazhinji nzira yekugadzirisa ikhodi yako kuitira kuti iwe usashuva iyo yakazara yeNFI zvachose. Ndichauya kune imwe nyaya munyaya inotevera.

Ngatitangei kutarisa kugadzirisa nyaya yevanhu vanopinda duff parameters. Somuenzaniso muchirongwa chepamusoro kana mushandisi achipinda chimwe chinhu kunze kwe "aboutdotcom" sechipiri parameter ipapo urongwa hwezvinyorwa zvinobva pa RSS feed kubva kuLXER pasinei nokuti munhu anoshandisa lxer kana kwete.

Mukuwedzera kana mushumiri asingatauri "zvose" kana "tsananguro" semuenzaniso wekutanga wekutanga ndeye urongwa hwezvinyorwa zvingave kana zvisingave izvo zvinoshandiswa nemunhu.

Tarisa pane script inotevera (kana kopi uye uiise mudiresi yako rssget.sh.

#! / bin / bash

kana [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
ipapo
kana [$ 1 = "zvose"] || [$ 1 = "tsanangudzo"] || [$ 1 = "musoro"]
ipapo
kana [$ 2 = "aboutdotcom"]
ipapo

kana [$ 1 = "zvose"]
ipapo
rsstail -d-l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "tsanangudzo"]
ipapo
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

zvimwe
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
zvimwe
kana [$ 1 = "zvose"]
ipapo
rsstail -d-l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "tsanangudzo"]
ipapo
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
zvimwe
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi

Chinhu chokutanga chokucherechedza ndechokuti script iri kuve yakakura chaizvo uye iwe unogona kukurumidza kuona kuti kunze kwekutevedza kwakadini IF zvataurwa zvinogona kuva.

Nyaya inokosha mune iyi script ndeyo IF statement || chirevo THEN chikamu pamutsara 2 uye mutsara 4.

The || inomiririra OR. Saka mutsetse kana [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"] inotarisa kuti iyo 2 parameter yakaenzana ne "aboutdotcom" kana "lxer". Kana iyo isiri iyo iyo inyoyo iyo inenge yakwana nokuti hakuna rimwezve chirevo chekunze kwekare IF.

Saizvozvowo pamutsara wechina mutsetse kana [$ 1 = "zvose"] || [$ 1 = "tsanangudzo"] || [$ 1 = "musoro"] anoongorora kana yekutanga parameter yakaenzana ne "zvose" kana "tsanangudzo" kana "musoro".

Iye zvino kana munhu anoshandisa sh rssget.sh mbatatisi cheese hapana chinodzorerwa asi vasati vatambira runyora rwezvinyorwa kubva kuLXER.

Kusiyana kwe || is &&. The && operator inomirira AND.

Ndiri kuzoita kuti script ione zvakanyanya kufanana nehope asi inoita cheki yose inokosha kuti ive nechokwadi chekuti mushandisi akapa 2 maparameter.

#! / bin / bash

kana [$ # -eq 2]
ipapo

kana [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
ipapo
kana [$ 1 = "zvose"] || [$ 1 = "tsanangudzo"] || [$ 1 = "musoro"]
ipapo
kana [$ 2 = "aboutdotcom"]
ipapo

kana [$ 1 = "zvose"]
ipapo
rsstail -d-l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "tsanangudzo"]
ipapo
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

zvimwe
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
zvimwe
kana [$ 1 = "zvose"]
ipapo
rsstail -d-l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "tsanangudzo"]
ipapo
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
zvimwe
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi
fi

Chero bedzi iyo inowedzera mune iyo script ndeyekunze IF inotaura seyizvi: kana [$ # -eq 2] . Kana iwe ukaverenga nyaya yacho pamusoro pemiganhu yekupinza iwe uchaziva kuti $ # inodzorera kuverenga kwenhamba yemaparameteri ekupinza. I-yeq inomira yakaenzana. Iko IF iyo zvinyorwa zvinoongorora kuti mushandisi akapinda mazamu maviri uye kana vasina kudaro vanongobuda pasina kuita chero chinhu. (Kwete kunyanya kushamwaridzana).

Ndiri kuziva kuti iyi tutorial iri kuwedzera zvikuru. Pane zvakawanda zvekuvhara vhiki rino asi ini ndinoda kubatsira kubhadhara script tisati tapedza.

Imwe murairo wekupedzisira iwe unoda kudzidza pamusoro pekutaura kwakagadzikana ishoko reCASE.

#! / bin / bash


kana [$ # -eq 2]
ipapo
case $ 2 in
aboutdotcom)
nyaya $ 1 mu
zvose)
rsstail -d-l -u z.about.com/6/o/m/linux_p2.xml
;;
tsanangudzo)
rsstail -d -u z.about.com/6/o/m/linux_p2.xml
;;
zita)
rsstail -u z.about.com/6/o/m/linux.about.com/6/o/m/linux_p2.xml
;;
esac
;;
lxer)
nyaya $ 1 mu
zvose)
rsstail -d-l -u http://lxer.com/module/newswire/headlines.rss
;;
tsanangudzo)
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
;;
zita)
rsstail -u http://lxer.com/module/newswire/headlines.rss
;;
esac
;;
esac
fi

Nyaya yemhosva ndiyo nzira yakanyora yekunyora IF KANHU IF ESE IF ALSE IF IF.

Somuenzaniso muenzaniso uyu

KANA michero = mabhanana
Izvozvo izvi
KURA IF IF zvibereko = marangi
Izvozvo izvi
KUNAI IFI michero = mazambiringa
Izvozvo izvi
ENDA IF

inogona kunyorwazve se:

case fruit in
bananas)
Ita izvi
;;
machero)
Ita izvi
;;
mazambiringa)
Ita izvi
;;
esac

Chaizvoizvo chinhu chekutanga mushure menyaya yacho ndicho chinhu chauchazoenzanisa (kureva zvibereko). Zvadaro chimwe nechimwe chiri pamberi pe mabhakisi ndicho chinhu chauri kuenzanisa uye kana chikafanana nemitsetse yapfuura ;; ichange ichimhanya. Mutsara wechikwata unopedzeredzwa ne reverse esac (iyo inoratidzika shure).

Mutsamba weRssget.sh nyaya inotora chikamu ichibvisa zvimwe zvekuvhundutsa izvo zvinotyisa kunyange zvazvo zvisiri kunyatsokuvandudza zvakakwana.

Kunyatsovandudza script ini ndinoda kukuzivisa iwe kuzvinhu zvakasiyana.

Tarisa nhamba inotevera:

#! / bin / bash

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

kana [$ # -lt 2] || [$ # -gt 2]
ipapo
echo "kushandiswa: rssget.sh [all | description | title] [aboutdotcom | lxer]";
siya;
fi

nyaya $ 1 mu
zvose)
kuratidza = "- d-l -u"
;;
tsanangudzo)
kuratidza = "- d -u"
;;
zita)
kuratidza = "- u"
;;
esac

case $ 2 in
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
esac
rsstail $ inoratidza $ url;

A shanduko inotsanangurwa nekuipa zita uye kugovera kukosha kwayo. Muchirevo chiri pamusoro apa zvinotevera zvinoshandiswa mabasa:

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

Iyo script inokurumidza kugadziriswa nekushandisa zvinoshandiswa. Somuenzaniso muenzaniso wega wega wega unotariswa zvakasiyana uye saka hakuna nested IF inotaura.

Chiratidziro chinoshandiswa zvino chagadzirirwa zvichienderana nekuti wakasarudza zvose, tsanangudzo kana musoro uye url kushandura yakagadzirirwa kuhutano hwehuwandu hwehutotot kana kuti kukosha kwekuchinja kwe lxer zvichienderana kana iwe wakasarudza aboutdotcom kana lxer.

Mutemo rsstail ikozvino unoshandisa kukosha kwekuratidzira uye url kuti uite zvakanaka.

Kunyange zvazvo zvinyorwa zvinongoratidzwa nokuvapa zita, kuti zvivashandise, iwe unofanira kuisa $ $ pamberi pavo. Mune mamwe mazwi kushandura = kukosha kunogadzirisa kushandiswa kune kukosha asi $ variable zvinoreva kundipa zviri mukati mekushanduka.

Izvi zvinotevera script yekupedzisira yeyikudzidzisa.

#! / bin / bash

lxer = "lxer.com/module/newswire/headlines.rss"
aboutdotcom = "z.about.com/6/o/m/linux_p2.xml"
dailydaylinuxuser = "http://feeds.feedburner.com/everydaylinuxuser/WLlg"
linuxtoday = "http://feedproxy.google.com/linuxtoday/linux"
kushandiswa = "kushandiswa: rssget.sh [all | description | title] [lxer | aboutdotcom | dailydaylinuxuser | linuxtoday]"
kuratidza = ""
url = ""

kana [$ # -lt 2] || [$ # -gt 2]
ipapo
echo $ use;
siya;
fi

nyaya $ 1 mu
zvose)
kuratidza = "- d-l -u"
;;
tsanangudzo)
kuratidza = "- d -u"
;;
zita)
kuratidza = "- u"
;;
*)
echo $ use;
siya;
;;
esac

case $ 2 in
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
linuxtoday)
url = $ linuxtoday;
;;
dailydaylinuxuser)
url = $ dailydayuxuser;
;;
*)
echo $ use;
siya;
esac

rsstail $ inoratidza $ url;

Iyi script iri pamusoro apa inotanga zvimwe RSS feeds uye kune kushandiswa kushandiswa kunoudza mushumiri kuti angashandisa sei script kana vasingatauri mhando mbiri kana kuti vanoisa zvisarudzo zvisina kukodzera zvevashanduri.

Summary

Iri rave riri nyaya yekare uye ingangodaro yakanyanya kukurumidza. Mumutungamiri anotevera Ndichakuratidza maitiro ose ekuenzanisira kana IF zvinyorwa uye pane zvakawanda zvakawanda zvokutaura nezvazvo maererano nezveshanduko.

Panewo zvimwe zvinogona kuitwa kuti uvandudze shanduro ino pamusoro apa uye izvi zvichafukidzwa mumitungamiri yeramangwana apo tinoongorora zvinyorwa, grep uye zvinyorwa zvese.

Tarisa kuti How To (Scroll down past the categories to see a list of articles) section of l inux.about.com kuti uwane mazano anobatsira kubva kumabato maviri eWindows uye Ubuntu pakugadzira mishonga inoshandiswa uchishandisa mabhokisi eGNOME .