Tari-dàlana hanombohana ny BASH - Fomba sy fari-piainana

Fampidirana

Tongasoa eto amin'ny ampahatelon'ny "Guide Guides To BASH". Raha tsy azonao ny lahatsoratra roa teo aloha, dia mety ho tianao ny hahafantatra hoe inona no mahatonga ity mpitarika ity ho hafa amin'ny toro-làlana hafa an'ny BASH.

Ity torolalana ity dia nosoratan'ny fanombohana feno ho an'i BASH ary toy izany koa ny mpamaky iray ianaranao rehefa mianatra aho. Na dia mpanamarina ny BASH aza aho dia avy amina fampiroboroboana rindrambaiko na ny ankamaroan'ny zavatra nosoratako dia ho an'ny sehatra Windows.

Azonao atao ny mahita ireo mpitarika roa voalohany amin'ny fitsidihana:

Raha toa ianao ka vaovao amin'ny BASH scripting dia manoro hevitra aho mamaky ireo toro-lalana roa voalohany alohan'ny hanohizana ity iray ity.

Amin'ity torolàlana ity dia hanasongadina ny fomba fampiasana fanambarana fehezina mba handinihana ny fidirana amin'ny mpampiasa sy hifehy ny fomba fiasan'ny script.

Hametraka rsstail

Raha te hanaraka an'io toro-lalana io ianao dia mila manamboatra rindrambaiko antsoina hoe rsstail izay ampiasaina hamakiana rss RSS .

Raha mampiasa karazana famaritana fototra Debian / Ubuntu / Mint ianao dia ireto manaraka ireto:

sudo apt-get install rsstail

Ho an'ny Fedora / CentOS sns dia manorata ireto manaraka ireto:

yum install rsstail

Manorata ireto manaraka ireto ny openSUSE :

zypper install rsstail

Ny fanambarana IF

Manokatra terminal ary mamorona tahiry iray antsoina hoe rssget.sh amin'ny fandefasana ireto manaraka ireto:

sudo nano rssget.sh

Ao anatin'ny fanontana nano dia midira ity lahatsoratra manaraka ity:

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

Sokafy ny rakitra amin'ny tsindrio CTRL sy O ary dia ajanony amin'ny tsindrio CTRL sy X.

Manaova ny script amin'ny alalan'ny fanoratana ireto manaraka ireto:

sh rssget.sh

Ny script dia hamerina lisitry ny lohateny avy amin'ny linux.about.com RSS feed.

Tsy sehatra mahasoa loatra izany satria izy indray maka ny lohateny avy amin'ny karazan-tsakafo iray RSS saingy tsy voatery hitadidy ny lalana mankany amin'ny Linux.about.com RSS feed.

Sokafy ny rssget.sh script ao amin'ny nano indray ary manoritsoritra ny rakitra:

#! / Bin / bash

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

Atsofeno ny script amin'ny alàlan'ny fanoratana ireto manaraka ireto:

sh rssget.sh verbose

Amin'ity indray mitoraka ity dia niverina ny lohateny, rohy ary famaritana ny lahatsary RSS.

Andeha isika handinika ny soratra amin'ny antsipiriany:

Ny #! / Bin / bash dia miseho amin'ny script rehetra nosoratanay. Ny andalana manaraka dia mijery ny singa voalohany nomen'ny mpampiasa ary mampitaha azy amin'ny teny hoe "verbose". Raha toa ka mifanaraka ny mari-pamantarana sy ny teny hoe "verbose" dia mihazakazaka ny andalana misy eo anelanelany sy eo .

Ity script ity dia mazava ho azy fa diso. Inona no mitranga raha tsy manome fepetra fandraisana anjara ianao? Ny valiny dia mahazo fahadisoana ianao eo amin'ny andaniny mpandraharaha tsy nampoizina.

Ny fahadisoana lehibe hafa dia raha tsy manome ny teny hoe "verbose" ianao dia tsy misy zava-mitranga mihitsy. Raha ny marina, raha tsy manome ny teny hoe verbose ianao dia hamerina lisitr'ireo lohateny ny script.

Ampiasao indray hano ny fanovana ny rssget.sh ary ampitahao ny code toy izao manaraka izao:

#! / Bin / bash

raha [$ 1 = "verbose"]
avy eo
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
hafa
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ny fi

Soritsorio ny rakitra ary ataovy amin'ny alalan'ny fanoratana ireto manaraka ireto:

sh rssget.sh verbose

Hisy lisitr'ireo lohateny, famaritana sy rohy hivoaka. Raiso indray izao manaraka izao:

sh rssget.sh lohateny

Amin'izao fotoana izao dia misy lisitr'ireo lohateny ihany.

Ny ampahany fanampiny amin'ny script dia eo amin'ny andalana 4 ary mampiditra ny fanambarana hafa . Amin'ny ankapobeny, ny script ankehitriny dia milaza raha ny singa voalohany dia ny teny hoe "verbose" dia mahazo ny famaritana, ny rohy ary ny lohatenin'ny fehezan-tsakafo RSS, raha toa ka ny lisitry ny lohateny ihany no lohalaharana voalohany.

Nihatsara kely ilay script, nefa mbola tsy voafehy. Raha tsy tafiditra ao amin'ny mari-pamantarana iray ianao dia mbola hisy fahadisoana. Na dia manome fepetra iray aza ianao, amin'ny filazana fotsiny hoe tsy mila ny matoanteny verbose dia tsy midika fotsiny hoe tianao fotsiny ny lohateny. Mety ho voatery namorona teny ratsy fotsiny ianao, na mety ho nosoloana voromailala izay tsy misy dikany akory.

Alohan'ny hanandramantsika sy hanesorana ireo olana dia te-hampiseho anao didy hafa izay manaraka ny fanambarana IF.

Ahitsio ny script rssget.shsh anao hijery toy izao manaraka izao:

#! / Bin / bash

raha [$ 1 = "rehetra"]
avy eo
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "famaritana"]
avy eo
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

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

Nanapa-kevitra ny hanaisotra ilay teny hoe verbose ary nosoloiko izany tamin'ny rehetra. Tsy izany no zava-dehibe. Ny scripty etsy ambony dia manolotra elif izay fomba fitenenana ELSE IF.

Ankehitriny dia toy izao manaraka izao ny script. Raha mihazakazaka rssget.sh ianao dia mahazo famaritana, rohy ary lohateny. Raha toa ianao ka manao ny famaritana rssget.sh anao fotsiny dia hahazo lohateny sy famaritana fotsiny. Raha manome teny hafa ianao dia hahazo lisitry ny anaram-boninahitra.

Izany dia manolotra fomba iray haingana amin'ny fanehoana lisitr'ireo fanambarana misy fepetra. Ny fomba fiasa hafa amin'ny fanaovana ELIF dia ny fampiasana izay lazaina hoe fanambarana fanambarana IF.

Ity manaraka ity dia ohatra iray mampiseho ny fanatanterahana ny fanambaran'ny IFN:

#! / Bin / bash

raha [$ 2 = "aboutdotcom"]
avy eo
raha [$ 1 = "rehetra"]
avy eo
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "famaritana"]
avy eo
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

hafa
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ny fi
hafa
raha [$ 1 = "rehetra"]
avy eo
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "famaritana"]
avy eo
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
hafa
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ny fi
ny fi

Aza misalasala manoratra izany rehetra izany raha toa ka tianao na kopia ary apetaho ao amin'ny rssget.sh anao.

Ity fitsipika etsy ambony ity dia manolotra karazana faha-2 izay ahafahanao misafidy "about.com" na "lxer.com" ho an'ny feed RSS.

Mba hampandehanana azy dia asio ireto manaraka ireto:

sh rssget.sh ny rehetra manodidinadotcom

na

sh rssget.sh daholo lxer

Azonao atao tsara ny misolo ny fanoritsoritana na ny lohateny rehetra mba hanomezana famaritana fotsiny na lohateny fotsiny.

Amin'ny ankapobeny, ny code etsy ambony dia milaza raha ny parameter faharoa dia is aboutdotcom avy eo dia jereo ny faharoa raha toa ka fanambarana mitovy ihany avy amin'ny soratra teo aloha raha toa ny faharoa parameter dia lxer dia mijery ny ao anatiny raha toa ka fanambarana indray ny fanapahan-kevitra mba hanehoana lohateny, famaritana na ny zava-drehetra.

Ity script ity dia omena ho ohatra ho an'ny fanambarana ambaran'ny IF ary misy zavatra maro tsy mety amin'ity script ity dia hitondra lahatsoratra hafa hanazavana azy rehetra. Ny tena olana dia ny tsy fisian'ny skalable.

Alao sary an-tsaina hoe te hampiditra sakafo hafa ianao tahaka ny Everyday Linux User na Linux Today? Ho lasa goavam-be ny script ary raha nanapa-kevitra ianao fa te hanova ny fanambarana anatiny dia tokony hanova izany any amin'ny toerana maro.

Na dia misy fotoana sy toerana hanaovana vetivety aza dia tokony hampiasaina kely. Matetika dia fomba iray handrafetana ny fehezan-dalàna hany ka tsy mila ny IF nest mihitsy. Ho tonga amin'ity lohahevitra ity aho amin'ny lahatsoratra manaraka.

Andeha hojerentsika ny fametrahana ny olan'ny olona miditra duff. Ohatra, ao amin'ny soratra etsy ambony raha toa ka misy zavatra hafa ankoatra ny "aboutdotcom" amin'ny anarana faharoa dia ny lisitry ny lahatsoratra dia miseho avy amin'ny lahatsary RSS avy amin'ny LXER, na inona na inona idiran'ny mpampiasa na tsia.

Ankoatra izay raha toa ka tsy miditra ny "rehetra" na ny "description" ho toy ny singa voalohany dia ny lisitry ny anaram-boninahitra izay mety sa tsy izay nataon'ny mpampiasa.

Jereo ity script ity (na kopia ary ampidiro ao amin'ny rssget.sh anao.

#! / Bin / bash

raha [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
avy eo
raha [$ 1 = "rehetra"] || [$ 1 = "famaritana"] || [$ 1 = "lohateny"]
avy eo
raha [$ 2 = "aboutdotcom"]
avy eo

raha [$ 1 = "rehetra"]
avy eo
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "famaritana"]
avy eo
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

hafa
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ny fi
hafa
raha [$ 1 = "rehetra"]
avy eo
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "famaritana"]
avy eo
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
hafa
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ny fi
ny fi
ny fi
ny fi

Ny zavatra voalohany tokony hanamarihana dia ny hoe efa miha-lehibe ny script ankehitriny ary afaka mahita haingana ianao fa mety ho lasa ny fanaraha-maso ny fametrahana fanambarana IF.

Ny bitika izay manan-danja ao amin'ity script ity dia ny fanambarana IF || fanambarana THEN fizarana ao amin'ny andalana 2 sy andalana 4.

Ny || mijoro ho an'ny OR. Koa ny tsipika raha [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"] manamarina raha mitovy ny "dotcom" na "lxer" ny singa faharoa. Raha tsy izany dia ny fanambarana IF dia feno, satria tsy misy fanambarana hafa ho an'ny IF tena ivelany .

Toy izany ihany koa amin'ny andalana 4 ny tsipika raha [$ 1 = "rehetra"] || [$ 1 = "famaritana"] || [$ 1 = "lohateny"] dia manamarina raha mitovy ny "all" na ny "description" na ny "titre" ny singa voalohany.

Amin'izao fotoana izao, raha misy mpampiasa rssget.sh manondraka tsimokaretina dia tsy misy na inona na inona naverina, alohan'ny hahazoany lisitry ny lohateny avy amin'ny LXER.

Ny mifanohitra amin'izany || is &&. Ny mpampiasa && dia ny AND.

Hanao izay hahitako ny endriky ny soratra ho toy ny nofy ratsy aho saingy mahatonga ny fizaham-pahamarinana manan-danja mba hahazoana antoka fa nanome mpampiasa 2 ny mpampiasa.

#! / Bin / bash

raha [$ # -eq 2]
avy eo

raha [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
avy eo
raha [$ 1 = "rehetra"] || [$ 1 = "famaritana"] || [$ 1 = "lohateny"]
avy eo
raha [$ 2 = "aboutdotcom"]
avy eo

raha [$ 1 = "rehetra"]
avy eo
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "famaritana"]
avy eo
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

hafa
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ny fi
hafa
raha [$ 1 = "rehetra"]
avy eo
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "famaritana"]
avy eo
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
hafa
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ny fi
ny fi
ny fi
ny fi
ny fi

Ny ampahany kely iray fanampiny ao amin'io script io dia fanambarana iray hafa an'ny IF ivelany toy izao: raha [$ # -eq 2] . Raha mamaky ilay lahatsoratra momba ny fampidinana ny rindrankajy ianao dia hahafantatra fa $ # dia mamerina ny isa amin'ny isa maromaro. Ny -eq dia mitovy tsy misy. Ny fanadihadian'ny IF dia manamarina fa niditra tao anatin'ny 2 ny parameter ary raha tsy avy niainga fotsiny izy ireo raha tsy nanao na inona na inona. (Tsy dia mahafinaritra loatra).

Fantatro fa mihamitombo be io lesona io. Tsy misy zavatra betsaka tokony hodinihina amin'ity herinandro ity fa te hanampy amin'ny fanoratana ny script aho alohan'ny hahavitantsika.

Ny didy farany izay ilainao ny mianatra momba ny fehezan-teny mifandraika dia ny fanambarana CASE.

#! / Bin / bash


raha [$ # -eq 2]
avy eo
raharaha $ 2 ao
aboutdotcom)
raharaha $ 1 ao
rehetra)
rsstail -d -l -u z.about.com/6/o/m/linux_p2.xml
;;
famaritana)
rsstail -d -u z.about.com/6/o/m/linux_p2.xml
;;
lohateny)
rsstail -u z.about.com/6/o/m/linux.about.com/6/o/m/linux_p2.xml
;;
esac
;;
lxer)
raharaha $ 1 ao
rehetra)
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
;;
famaritana)
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
;;
lohateny)
rsstail -u http://lxer.com/module/newswire/headlines.rss
;;
esac
;;
esac
ny fi

Ny fanambarana amin'ny toe-javatra dia fomba tsara kokoa hanoratana IF IFANANA HO AN'NY OLONA IF ELSE IF.

Ohatra ity lojika ity

IF fruit = bananas
IZAO
ELSE raha misy voankazo = orange
IZAO
ELSE raha misy voankazo = voaloboka
IZAO
END IF

dia azo averina soratana tahaka izao:

voankazo ao anaty
akondro)
ataovy izany
;;
voasary)
ataovy izany
;;
voaloboka)
ataovy izany
;;
esac

Amin'ny ankapobeny ny singa voalohany aorian'ilay raharaha dia ny zavatra izay ampitahainao (izany hoe voankazo). Avy eo ny singa tsirairay alohan'ny fampifandirana dia ny zavatra mampitaha anao ary raha mifanaraka ny laharana alohan'ny; dia hihazakazaka. Misy fanambaràna tranga iray tapaka miaraka amin'ny fanodinana esac (izay tranga aoriana).

Ao amin'ny script rssget.shh, dia manala ny sasany amin'ireny fanimbana mampihoron-koditra ireny ny fanambarana ny tranga na dia tsy ampy aza izany.

Mba hanatsarana marina ny script dia mila mampiditra anao amin'ny fari-pahalalana aho.

Jereo ity code manaraka ity:

#! / Bin / bash

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

raha [$ # -lt2] || [$ # -ts 2]
avy eo
Echo "ampiasaina: rssget.sh [rehetra | description | lohataona] [aboutdotcom | lxer]";
Fivoahana;
ny fi

raharaha $ 1 ao
rehetra)
=> - d -l -u "
;;
famaritana)
display = "- d -u"
;;
lohateny)
Asehoy ny = "- U"
;;
esac

raharaha $ 2 ao
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
esac
rsstail $ display $ url;

Ny fari-piovana dia voafaritra amin'ny fanomezana azy anarana ary avy eo mametraka sanda amin'izany. Amin'ity ohatra etsy ambony ity dia misy fanovana azo atao ny manaraka:

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

Ny script dia azo ampiasaina mora kokoa amin'ny fampiasana ireo fariana. Ohatra, ny singa tsirairay dia natao tsirairay misaraka ary noho izany dia tsy misy fanambarana IF.

Ny fari-drakitra fanehoana dia napetraka arak'izay raha nifidy ny rehetra, ny famaritana na ny anaram-boninahitra ary ny fari-na url dia napetraka amin'ny lanjan'ny toetr'andro teo amin'ny toetr'andro na ny lanjan'ny lxer fari-pifidianana raha toa ka nisafidy momba ny dotcom na lxer ianao.

Ny baiko rsstail izao dia tsy maintsy mampiasa ny lanjan'ny fampisehoana sy ny url amin'ny fandaminana tsara.

Raha variana amin'ny fametrahana anarana fotsiny izy ireo, raha mampiasa azy ireo ianao dia tsy maintsy mametraka marika $ eo anoloan'izy ireo. Amin'ny teny hafa, ny variable = set values ​​dia mamaritra amin'ny sandany raha toa ny $ variables dia manome ahy ny votoatin'ny variable.

Ity manaraka ity ny script farany ho an'ity tutorial ity.

#! / 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"
fampiasana = "fampiasana: rssget.sh [rehetra | description | lohataona] [lxer | aboutdotcom | everydaylinuxuser | linuxtoday]"
Asehoy ny = ""
url = ""

raha [$ # -lt2] || [$ # -ts 2]
avy eo
Echo $ ampiasaina;
Fivoahana;
ny fi

raharaha $ 1 ao
rehetra)
=> - d -l -u "
;;
famaritana)
display = "- d -u"
;;
lohateny)
Asehoy ny = "- U"
;;
*)
Echo $ ampiasaina;
Fivoahana;
;;
esac

raharaha $ 2 ao
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
linuxtoday)
url = $ linuxtoday;
;;
everydaylinuxuser)
url = $ everydaylinuxuser;
;;
*)
Echo $ ampiasaina;
Fivoahana;
esac

rsstail $ display $ url;

Ny scripty etsy ambony dia mampiditra fehezanteny fohy kokoa ary misy fari-piainana ampiasaina izay milaza ny mpampiasa ny fomba fampiasana ny script raha toa ka tsy miditra 2 variables izy ireo na miditra ireo safidy diso ho an'ny variable.

famintinana

Ity lahatsoratra ity dia lahatsoratra an-dahatsoratra ary mety ho lasa loatra loatra. Ao amin'ny toro-làlana manaraka dia hasehoko anao ny safidy fampitahàna amin'ny fanambarana IF ary mbola betsaka ny miresaka momba ny fari-pahalalana.

Misy ihany koa ny zavatra azo atao mba hanatsarana io soratra etsy ambony io ary izany dia hodinihina amin'ny torolàlana amin'ny ho avy rehefa mandinika ny loops, grep sy ny fanehoana matetika.

Jereo ny Ahoana ny (Asehoy ny sokajy mba hijerena lisitr'ireo lahatsoratra) fizarana ao amin'ny inux.about.com mba hitadiavana mpitari-dalana mahasoa kokoa avy amin'ny fanamboarana dual Windows sy Ubuntu hamorona milina virtoaly mampiasa boaty GNOME .