Itọsọna Bẹrẹ si BASH - Awọn ipo ati Awọn iyatọ

Ifihan

Kaabo si apakan kẹta ti "Ilana Akọbẹrẹ si BASH". Ti o ba ti padanu awọn iwe meji ti o wa tẹlẹ lẹhinna o yoo fẹ lati mọ ohun ti o jẹ ki itọsọna yi jẹ yatọ si awọn itọsọna atọwọtọ BASH.

Itọsọna yii ni a kọwe nipasẹ aṣoju titun kan si BASH ati nitorina bi oluka ti o kọ bi mo ti kọ ẹkọ. Nigbati mo jẹ alakorẹ si BASH Mo ti wa lati inu idagbasoke software kan lẹhin biotilejepe ọpọlọpọ awọn nkan ti mo kọ silẹ ti wa fun ipolongo Windows.

O le wo awọn itọsọna meji akọkọ nipa lilo si:

Ti o ba jẹ tuntun si iwe-iwe kika BASH Mo ṣe iṣeduro kika awọn itọsọna meji akọkọ ṣaaju ki o to tẹsiwaju pẹlu eyi.

Ninu itọsọna yi emi yoo ṣe afihan bi o ṣe le lo awọn alaye ti o ni idiwọn lati ṣe idanwo igbasilẹ olumulo ati lati ṣakoso bi o ṣe jẹ iwe akosile.

Fi rsstail sori

Lati le tẹle itọnisọna yi o nilo lati fi sori ẹrọ ohun elo laini aṣẹ kan ti a npe ni apẹrẹ ti a lo lati ka awọn kikọ sii RSS .

Ti o ba nlo apejuwe pinpin Debian / Ubuntu / Mint gẹgẹbi awọn wọnyi:

sudo apt-get install rsstail

Fun Fedora / CentOS ati be be lo iru eyi:

yum fi sori ẹrọ rsstail

Fun openSUSE tẹ awọn wọnyi:

zypper fi rsstail

Gbólóhùn IF

Šii ebute kan ki o si ṣẹda faili kan ti a npe ni rssget.sh nipa titẹ awọn wọnyi:

sudo nano rssget.sh

Laarin awọn olootu nano tẹ ọrọ ti o tẹle:

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

Fipamọ faili naa nipa titẹ CTRL ati O ati lẹhinna jade nipa titẹ CTRL ati X.

Ṣiṣe awọn akosile nipa titẹ awọn wọnyi:

sh rssget.sh

Awọn akosile yoo pada akojọ kan ti awọn oyè lati awọn linux.about.com kikọ sii RSS.

Kosi iṣe iwe-aṣẹ ti o wulo julọ nitori pe o gba awọn iyọọda lati inu awọn kikọ sii RSS kan nikan ṣugbọn o gba pe o ni lati ranti ọna si Linux.about.com awọn kikọ sii RSS.

Šii iwe afọwọkọ rssget.sh ni nano lẹẹkansi ki o ṣatunkọ faili lati wo bi wọnyi:

#! / bin / bash

ti o ba jẹ [$ 1 = "verbose"]
lẹhinna
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
fi

Ṣiṣe awọn akosile lẹẹkansi nipa titẹ awọn wọnyi:

sh rssget.sh verbose

Ni akoko yii awọn kikọ sii RSS wa pẹlu akọle, asopọ ati apejuwe.

Jẹ ki a ṣe itupalẹ awọn akọsilẹ ni nkan diẹ ninu awọn apejuwe:

Awọn #! / Bin / bash han ni gbogbo akọọlẹ ti a kọ. Laini ti o wa lakọkọ wa ni akọkọ titẹsi akọkọ ti a pese nipa olumulo ati ki o ṣe afiwe o si ọrọ "verbose". Ti iṣeto titẹ sii ati ọrọ "verbose" baamu awọn ila laarin lẹhinna ati fi ti wa ni ran.

Iwe-akosile ti o wa loke ni o han gbangba. Kini yoo ṣẹlẹ ti o ko ba pese paramita titẹ sii ni gbogbo? Idahun ni pe o gba aṣiṣe kan pẹlu awọn oniṣẹ alaiṣẹ lairotẹlẹ.

Iwọn pataki miiran jẹ wipe ti o ko ba pese ọrọ naa "verbose" lẹhinna nkan ko ṣẹlẹ rara. Apere ti o ko ba pese ọrọ ọrọ verbose naa yoo pada si akojọ awọn oyè.

Lo nano lẹẹkansi lati ṣatunkọ faili rssget.sh ki o ṣe atunṣe koodu bi wọnyi:

#! / bin / bash

ti o ba jẹ [$ 1 = "verbose"]
lẹhinna
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
miiran
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi

Fipamọ faili naa ki o si ṣakoso rẹ nipa titẹ awọn wọnyi:

sh rssget.sh verbose

A akojọ awọn akọle, awọn apejuwe ati awọn asopọ yoo han. Nisisiyi ṣiṣe o lẹẹkansi bi wọnyi:

awọn orukọ iyọọda sh rgetget.sh

Akoko yi o kan akojọ awọn oyè han.

Apa afikun ti akosile wa ni ila 4 ati ṣafihan alaye miiran . Bakannaa akosile bayi sọ pe ti akọkọ paramita ọrọ naa ni "verbose" gba apejuwe, awọn ìjápọ ati awọn oyè fun awọn kikọ sii RSS ṣugbọn ti o ba jẹ pe ohun miiran miiran ni o ni akojọ awọn oyè.

Iwe akosile ti dara si ilọsiwaju sugbon o tun jẹ ipalara. Ti o ba kuna lati tẹ akọsilẹ kan o yoo tun gba aṣiṣe kan. Paapa ti o ba ṣe ipese kan, o kan nipa sisọ o ko fẹ verbose ko tumọ si pe o fẹ awọn akọle nikan. O le ti ṣafihan ọrọ verbose laiṣe fun apẹẹrẹ tabi o le ti tẹ awọn ẹyẹle ti o tumọ si asan.

Ṣaaju ki a gbiyanju ati ki o mu awọn oran yii kuro Mo fẹ fi aami ti o lọ pẹlu alaye IF naa hàn ọ.

Ṣatunkọ iwe-ipamọ rssget.sh rẹ lati wo bi wọnyi:

#! / bin / bash

ti o ba jẹ [$ 1 = "gbogbo"]
lẹhinna
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "apejuwe"]
lẹhinna
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

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

Mo pinnu lati yọ ọrọ verbose kuro ki o si fi gbogbo rẹ rọpo. Eyi kii ṣe apakan pataki. Iwe akosile ti o wa loke ṣe apejuwe elif eyi ti o jẹ ọna ti o rọrun lati sọ ELSE IF.

Bayi akosile ṣiṣẹ gẹgẹbi atẹle. Ti o ba ṣiṣe sh rssget.sh gbogbo lẹhinna o gba awọn apejuwe, awọn asopọ ati awọn oyè. Ti o ba dipo o kan ṣiṣe awọn alaye sh rssget.sh o yoo gba awọn akọle ati awọn apejuwe nikan. Ti o ba pese ọrọ miiran o yoo gba akojọ awọn akọle.

Eyi n ṣafihan ọna kan ti yara yarayara pẹlu akojọ kan ti awọn gbolohun ọrọ. Ọnà miiran ti n ṣe ELIF ni lati lo ohun ti a mọ gẹgẹbi awọn ọrọ IF ti o jẹ adaṣe.

Awọn atẹle jẹ apẹẹrẹ ti o n fihan bi awọn ọrọ IF ti o jẹ adaṣe ṣiṣẹ:

#! / bin / bash

ti o ba jẹ [$ 2 = "aboutdotcom"]
lẹhinna
ti o ba jẹ [$ 1 = "gbogbo"]
lẹhinna
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "apejuwe"]
lẹhinna
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

miiran
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
miiran
ti o ba jẹ [$ 1 = "gbogbo"]
lẹhinna
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "apejuwe"]
lẹhinna
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
miiran
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi

Ṣe idaniloju lati tẹ gbogbo ohun ti o wa ni ti o ba fẹ tabi daakọ ati lẹẹmọ rẹ sinu faili rssget.sh rẹ.

Awọn akosile ti o wa loke n ṣafihan ilọsiwaju 2nd eyiti o jẹ ki o yan boya "about.com" tabi "lxer.com" ohun kikọ sii RSS kan.

Lati ṣiṣe o o tẹ ni awọn atẹle:

sh rssget.sh gbogbo aboutdotcom

tabi

sh rssget.sh gbogbo lxer

O le dajudaju ropo gbogbo pẹlu awọn apejuwe tabi awọn oyè lati pese awọn apejuwe kan tabi awọn akọle ti o kan.

Bakannaa koodu ti o wa loke sọ bi paramita keji ba jẹ aboutdotcom lẹhinna ki o wo awọn keji ti o ba jẹ gbolohun ti o jẹ iru kanna lati akosile akosile ti tẹlẹ ti o ba jẹ pe igbẹẹ keji jẹ lxer lẹhinna wo akojọpọ ti o ba jẹ gbolohun lẹẹkansi lati pinnu boya o fihan awọn akọle, awọn apejuwe tabi ohun gbogbo.

Ti a ti pese akosile yii bakanna bi apẹẹrẹ ti gbólóhùn IF ti o ni idaniloju ati pe ọpọlọpọ awọn ohun ti ko tọ si pẹlu iwe-akọọlẹ yoo gba ohun miiran lati ṣe alaye gbogbo wọn. Ọrọ koko ni pe ko ṣe iwọn.

Fojuinu pe o fẹ lati fi awọn ifunni RSS miiran kun gẹgẹbi Olupin Lọwọlọwọ Olumulo tabi Lainos Loni? Iwe akosile naa yoo di tobi ati ti o ba pinnu pe o fẹ ifitonileti IF ti o ni lati yipada o yoo ni lati yi pada ni aaye pupọ.

Nigbati akoko ati ibi kan wa fun IFI ti o wa ni idasilẹ wọn yẹ ki o lo diẹ ẹ sii. Ọna maa n jẹ ọna lati tun atunṣe koodu rẹ ki o ko nilo ID ti o wa ni idaniloju rara. Emi yoo wa si koko-ọrọ yii ni nkan iwaju.

Jẹ ki a wo bayi ni idojukọ awọn ọrọ ti awọn eniyan ti nwọle si awọn ifilelẹ. Fun apẹẹrẹ ni akosile ti o wa loke ti olumulo ba wọ ohun kan yatọ si "aboutdotcom" bi 2nd ipari lẹhinna akojọ kan ti awọn ohun elo han lati awọn kikọ sii RSS lati LXER lai bii boya olumulo naa tẹ odidi tabi kii ṣe.

Ni afikun ti olumulo ko ba tẹ "gbogbo" tabi "apejuwe" bii akọkọ akọkọ lẹhinna aiyipada ni akojọ awọn akọle ti o le jẹ tabi kii ṣe ohun ti olumulo naa pinnu.

Wo akosile wọnyi (tabi daakọ ki o si lẹẹmọ rẹ sinu faili rssget.sh rẹ.

#! / bin / bash

ti [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
lẹhinna
ti o ba jẹ [$ 1 = "gbogbo"] || [$ 1 = "apejuwe"] || [$ 1 = "akọle"]
lẹhinna
ti o ba jẹ [$ 2 = "aboutdotcom"]
lẹhinna

ti o ba jẹ [$ 1 = "gbogbo"]
lẹhinna
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "apejuwe"]
lẹhinna
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

miiran
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
miiran
ti o ba jẹ [$ 1 = "gbogbo"]
lẹhinna
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "apejuwe"]
lẹhinna
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
miiran
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi

Ohun akọkọ lati ṣe akiyesi ni pe akosile ti wa ni bayi ti o tobi pupọ ati pe o le yara wo bi awọn alaye IF ti o jẹ idaniloju ti o ni idaniloju le di.

Awọn bit ti o ṣe pataki ni iwe-akọọlẹ yii ni ọrọ IF IF || gbólóhùn TI apakan lori ila 2 ati ila 4.

Awọn || duro fun TABI. Nitorina ila ti o ba jẹ [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"] ṣayẹwo boya aṣiṣe 2nd jẹ dogba si "aboutdotcom" tabi "lxer". Ti ko ba jẹ pe IF IF naa ti pari nitori pe ko si alaye miiran fun awọn ti o ga julọ IF.

Bakanna ni ila 4 ila naa ti [$ 1 = "gbogbo"] || [$ 1 = "apejuwe"] || [$ 1 = "akọle"] ṣayẹwo boya ipo akọkọ jẹ dogba si boya "gbogbo" tabi "apejuwe" tabi "akọle".

Nisisiyi ti olumulo ba ṣiṣẹ sh rgetget.sh poteto warankasi ko si ohun ti o pada tun ṣaaju ki wọn yoo ti gba akojọ awọn akọle lati LXER.

Idakeji ti || jẹ &&. Awọn & iṣẹ n duro fun AND.

Mo n ṣe ki iwe akosile wo paapaa bi alaburuku kan ṣugbọn o jẹ ki gbogbo ayẹwo pataki lati rii daju pe olumulo ti pese awọn iṣiro 2.

#! / bin / bash

ti o ba jẹ [$ # -eq 2]
lẹhinna

ti [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
lẹhinna
ti o ba jẹ [$ 1 = "gbogbo"] || [$ 1 = "apejuwe"] || [$ 1 = "akọle"]
lẹhinna
ti o ba jẹ [$ 2 = "aboutdotcom"]
lẹhinna

ti o ba jẹ [$ 1 = "gbogbo"]
lẹhinna
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
elif [$ 1 = "apejuwe"]
lẹhinna
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

miiran
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
miiran
ti o ba jẹ [$ 1 = "gbogbo"]
lẹhinna
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
elif [$ 1 = "apejuwe"]
lẹhinna
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
miiran
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi
fi

Bakanna ti o jẹ afikun ninu iwe-akọọlẹ jẹ ọrọ isọsi IF miiran miiran bi wọnyi: ti [$ # -eq 2] . Ti o ba ka akọọlẹ nipa awọn ipinnu titẹ sii o yoo mọ pe $ # pada kan iye nọmba ti awọn ipinnu titẹ sii. Ika naa duro fun awọn deede. Ifitonileti IF naa n ṣayẹwo pe olumulo naa ti tẹ 2 awọn igbasilẹ ati pe ti wọn ko ba jade nikan lai ṣe ohunkohun. (Ko ṣe deede ore).

Mo mọ pe itọnisọna yii n gba pupọ. Ko si Elo siwaju sii lati bo ose yii ṣugbọn Mo fẹ lati ṣe iranlọwọ lati ṣe atunṣe akosile naa ṣaaju ki a pari.

Ilana ti o kẹhin ti o nilo lati ni imọ nipa awọn gbolohun asọwọn jẹ gbólóhùn NI.

#! / bin / bash


ti o ba jẹ [$ # -eq 2]
lẹhinna
nla $ 2 ni
nipadotcom)
nla $ 1 ni
gbogbo)
rsstail -d -l -u z.about.com/6/o/m/linux_p2.xml
;;
apejuwe)
rsstail -d -u z.about.com/6/o/m/linux_p2.xml
;;
akọle)
rsstail -u z.about.com/6/o/m/linux.about.com/6/o/m/linux_p2.xml
;;
esac
;;
lxer)
nla $ 1 ni
gbogbo)
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
;;
apejuwe)
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
;;
akọle)
rsstail -u http://lxer.com/module/newswire/headlines.rss
;;
esac
;;
esac
fi

Ọrọ igbimọ naa jẹ ọna kikọ ti o dara julọ ti o ba jẹ FẸ SẸNA BẸẸ SẸ TABI FI ISI FI.

Fun apẹẹrẹ itanna yii

Ti eso = bananas
TI eyi
ELSE TI eso = oranges
TI eyi
ELSE TI eso = ajara
TI eyi
END IF

le ṣe atunkọ bi:

irú eso ni
bananas)
ṣe eyi
;;
oranges)
ṣe eyi
;;
Ajara)
ṣe eyi
;;
esac

Bakannaa ohun akọkọ lẹhin ti ọran naa jẹ ohun ti o yoo ṣe afiwe (ie eso). Lẹhinna ohun kọọkan ṣaaju ki awọn biraketi jẹ ohun ti o nfiwe si ati pe o baamu awọn ila ti o wa; yoo ṣiṣẹ. A gbólóhùn apejọ kan ti pari pẹlu igbiyanju ti o kọja (eyi ti o jẹ idiyele lokehinti).

Ni iwe rssget.sh ṣe apejuwe ọrọ idiyele yi yọ diẹ ninu awọn ẹiyẹ ti o buru ju biotilejepe ko ṣe idojukọ daradara.

Lati ṣe atunṣe akọọlẹ ti mo nilo lati ṣafihan rẹ si awọn oniyipada.

Wo koodu wọnyi:

#! / bin / bash

lxer = "lxer.com/module/newswire/headlines.rss"
nipadotcom = "z.about.com/6/o/m/linux_p2.xml"
àpapọ = ""
URL = ""

ti o ba jẹ [$ # -lt 2] || [$ # -gt 2]
lẹhinna
iwoyi "lilo: rssget.sh [gbogbo | apejuwe | akọle] [aboutdotcom | lxer]";
Jade;
fi

nla $ 1 ni
gbogbo)
àpapọ = "- d -l -u"
;;
apejuwe)
àpapọ = "- d -u"
;;
akọle)
àpapọ = "- ni"
;;
esac

nla $ 2 ni
nipadotcom)
URL = $ aboutdotcom;
;;
lxer)
URL = $ lxer;
;;
esac
rsstail $ ifihan $ url;

A ṣe ayípadà kan nipa fifun ni orukọ kan lẹhinna ni ipinnu iye kan si rẹ. Ni apẹẹrẹ ti o wa loke wọnyi ni awọn iṣẹ iyatọ:

lxer = "lxer.com/module/newswire/headlines.rss"
nipadotcom = "z.about.com/6/o/m/linux_p2.xml"
àpapọ = ""
URL = ""

Awọn akosile jẹ lesekese siwaju sii ṣakoso nipasẹ lilo awọn oniyipada. Fun apẹẹrẹ a ti ṣakoso ọwọ kọọkan ni lọtọ ati nitorina ko si awọn gbólóhùn IF ti o ni idaniloju.

Iyipada iyipada ti wa ni bayi ti da lori boya o yan gbogbo, apejuwe tabi akọle ati iyipada url ti a ṣeto si iye ti iyipada aboutdotcom tabi iye ti ayípadà ayípadà ti o daba boya o yan aboutdotcom tabi lxer.

Ilana rsstail bayi o ni lati lo iye ti ifihan ati url lati ṣiṣe tọ.

Nigba ti a ti ṣeto awọn oniyipada nikan nipa fifun wọn orukọ kan, lati lo wọn ni otitọ o ni lati fi ami-ami kan si iwaju wọn. Ni awọn ọrọ miiran ayípadà = iye ayipada iye iye si iye kan nigba ti $ ọna iyipada fun mi ni awọn akoonu ti iyipada.

Eyi ni akosile ipari fun itọnisọna yii.

#! / bin / bash

lxer = "lxer.com/module/newswire/headlines.rss"
nipadotcom = "z.about.com/6/o/m/linux_p2.xml"
dailylinuxuser = "http://feeds.feedburner.com/everydaylinuxuser/WLlg"
linuxtoday = "http://feedproxy.google.com/linuxtoday/linux"
lilo = "lilo: rssget.sh [gbogbo | apejuwe | akọle] [lxer | aboutdotcom | dailylinuxuser | linuxtoday]"
àpapọ = ""
URL = ""

ti o ba jẹ [$ # -lt 2] || [$ # -gt 2]
lẹhinna
echo $ lilo;
Jade;
fi

nla $ 1 ni
gbogbo)
àpapọ = "- d -l -u"
;;
apejuwe)
àpapọ = "- d -u"
;;
akọle)
àpapọ = "- ni"
;;
*)
echo $ lilo;
Jade;
;;
esac

nla $ 2 ni
nipadotcom)
URL = $ aboutdotcom;
;;
lxer)
URL = $ lxer;
;;
linuxtoday)
url = $ linuxtoday;
;;
dailylinuxuser)
url = $ dailylinuxuser;
;;
*)
echo $ lilo;
Jade;
esac

rsstail $ ifihan $ url;

Awọn akosile ti o wa loke n ṣafihan siwaju sii awọn kikọ sii RSS ati pe iyatọ iṣowo kan wa ti o sọ fun olumulo bi o ṣe le lo akosile naa bi wọn ko ba tẹ awọn oniyipada 2 tabi ti wọn tẹ awọn aṣiṣe ti ko tọ fun awọn oniyipada.

Akopọ

Eyi ti jẹ ọrọ apọju ati o le ti lọ jina pupọ ju laipe. Ni itọsọna ti o tẹle mi emi yoo fi gbogbo awọn apejuwe awọn iṣeduro fun awọn ọrọ IF fun ọ ati pe o wa ṣi siwaju sii lati sọrọ nipa pẹlu awọn oniye.

O tun wa diẹ sii ti a le ṣe lati ṣe atunṣe akosile ti o wa loke ati pe eyi yoo bo ni awọn itọsọna iwaju bi a ṣe n ṣe awari awọn losiwajulosehin, grep ati awọn ọrọ deede.

Ṣayẹwo jade ni Bawo Lati (Yi lọ si isalẹ awọn ẹka lati wo akojọ awọn ohun elo) apakan ti l inux.about.com lati wa awọn itọsọna ti o wulo julọ lati ọdọ Windows ati Ubuntu ti o ni meji lati ṣeto ẹrọ ti o nlo nipa lilo awọn apoti GNOME .