Buku loyamba kwa BASH - Zinthu ndi Zosiyanasiyana

Mau oyamba

Takulandirani ku gawo lachitatu la "Buku loyamba kwa BASH". Ngati mwaphonya zigawo ziwiri zapitazo ndiye kuti mukufuna kudziwa chomwe chimapangitsa bukhuli kuti likhale losiyana ndi malemba ena a BASH.

Bukuli likulembedwa ndi woyimilira wathunthu kwa BASH ndipo monga wowerenga mumaphunzira. Ngakhale ndiri mtsogoleri wa BASH ndimachokera kumalo osungirako mapulogalamu, ngakhale kuti zinthu zambiri zomwe ndazilemba zakhala pazenera la Windows.

Mutha kuona maulendo awiri oyambirira poyendera:

Ngati muli watsopano ku BASH scripting Ndikupangira kuwerenga maulendo awiri oyambirira musanapitirize ndi ichi.

Mu bukhuli ndikukhala ndikufotokozera momwe mungagwiritsire ntchito mawu ovomerezeka kuti muyesere momwe mungagwiritsire ntchito ndikugwiritsa ntchito momwe script ikugwirira ntchito.

Sakani rsstail

Kuti muthe kutsata ndondomekoyi muyenera kuyika mzere wamtundu wa malamulo wotchedwa rsstail umene umagwiritsidwa ntchito kuwerenga ma RSS .

Ngati mukugwiritsa ntchito mtundu wa Debian / Ubuntu / Mint wogawa zogawa zotsatirazi:

sudo apt-get install rsstail

Kwa Fedora / CentOS ndi zina zotere:

yum kukhazikitsa rsstail

Kuti mutsegule zowonjezera zotsatirazi:

Sakani rsstail

Mawu a IF

Tsegulani chithunzithunzi ndikupanga fayilo yotchedwa rssget.sh polemba zotsatirazi:

sudo nano rssget.sh

Mu mkonzi wa nano alowetsani malemba awa:

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

Sungani fayilo mwa kukanikiza CTRL ndi O ndipo kenako tulukani mwa kukanikiza CTRL ndi X.

Kuthamanga script polemba zotsatirazi:

sh rssget.sh

Tsambalo lidzabwezera mndandanda wa maudindo kuchokera ku RSS feed linux.about.com.

Sizothandiza kwambiri chifukwa zimangotenga maudindo kuchokera ku tsamba limodzi la RSS koma zimapulumutsa kuti zikumbukire njira yopita ku Linux.about.com RSS feed.

Tsegulani script ya rssget.sh mu nano kachiwiri ndikusintha fayilo kuti muwone motere:

#! / bin / bash

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

Sungani script kachiwiri polemba zotsatirazi:

sh rssget.sh verbose

Panthawiyi chakudya cha RSS chikubwerera ndi mutu, chiyanjano ndi kufotokozera.

Tiyeni tiwerenge script mwatsatanetsatane:

The #! / Bin / bash ikuwonekera mulemba iliyonse yomwe timalemba. Mzere wotsatira umangoyang'ana pa parameter yoyamba yopereka yoperekedwa ndi wogwiritsa ntchito ndipo amafanizira ndi mawu akuti "verbose". Ngati pulogalamu yowunikira komanso mawu akuti "verbose" akugwirizana ndi mizere pakati pa nthawiyo ndi fi imatha .

Zolemba zapamwambazi zikuwoneka zopanda pake. Kodi chimachitika ndi chiyani ngati simungapereke chizindikiro cholozera? Yankho ndikuti mumapeza zolakwitsa pamzere mwa osayembekezereka.

Cholakwika china chachikulu ndi chakuti ngati simungapereke mawu akuti "verbose" ndiye kuti palibe chomwe chikuchitika. Ndibwino kuti ngati simungapereke mawu akuti verbose script angabweretse mndandanda wa maudindo.

Gwiritsani ntchito nano kachiwiri kuti musinthe fayilo ya rssget.sh ndipo musinthe code monga:

#! / bin / bash

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

Sungani fayilo ndikuyendetsa polemba zotsatirazi:

sh rssget.sh verbose

Mndandanda wa maudindo, mafotokozedwe ndi maulendo adzawonekera. Tsopano muthamangitsenso izi motere:

sh rssget.sh maudindo

Nthawiyi mndandanda wa maudindo awonekera.

Mbali yowonjezera ya script ili pa mzere wa 4 ndipo imayankhula mawu enawo. Pakadali pano script imati ngati yoyamba ndilo mawu akuti "verbose" amatanthauzira, maulendo ndi maudindo a chakudya cha RSS koma ngati pulogalamu yoyamba ndi china chilichonse mutenge mndandanda wa maudindo.

Script yakula pang'ono koma ikadali yolakwika. Ngati mukulephera kulowa parameter mudzapezabe vuto. Ngakhale mutapereka choyimira, kungonena kuti simukufuna verbose sikukutanthauza kuti mukufuna maudindo okha. Mwinamwake mwangotchula verbose zolakwika mwachitsanzo kapena mwinamwake mwayimira nkhunda zomwe ziri zopanda pake.

Tisanayese kuchotsa nkhanizi ndikufuna kukuwonetsani lamulo limodzi lomwe likupita ndi mawu a IF.

Sinthani script yanu ya rssget.sh kuti muyang'ane motere:

#! / bin / bash

ngati [$ 1 = "onse"]
ndiye
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
Elif [$ 1 = "ndondomeko"]
ndiye
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

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

Ndinaganiza zochotsa mau akuti verbose ndi kuwatsata ndi zonse. Icho si gawo lofunikira. Mndandanda wa pamwambawu umayambitsa liwu lomwe ndi njira yaying'ono yonena kuti ALSE IF.

Tsopano script ikugwira ntchito motere. Ngati muthamanga sh rssget.sh onse ndiye mumapeza mafotokozedwe, maulaliki ndi maudindo. Ngati mmalo mwake mumangothamanga tsatanetsatane wa sh rssget.sh mudzatchula mayina ndi mafotokozedwe. Ngati mupereka liwu lina lirilonse mudzapeza mndandanda wa maudindo.

Izi zimayambitsa njira yobweretsera mwamsanga mndandanda wa mawu ovomerezeka. Njira yina yochitira ELIF ndi kugwiritsa ntchito zomwe zimadziwika kuti nthiti za IF.

Chotsatira ndi chitsanzo chosonyeza momwe zilembo za IF IF zimagwirira ntchito:

#! / bin / bash

ngati [$ 2 = "aboutdotcom"]
ndiye
ngati [$ 1 = "onse"]
ndiye
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
Elif [$ 1 = "ndondomeko"]
ndiye
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

china
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
china
ngati [$ 1 = "onse"]
ndiye
rsstail -d-l -u http://lxer.com/module/newswire/headlines.rss
Elif [$ 1 = "ndondomeko"]
ndiye
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
china
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi

Khalani omasuka kuika zonsezo ngati mukufuna kapena kuzilemba ndi kuziyika mu fayilo yanu ya rssget.sh.

Mawu apamwambawa akuyambitsa parameter yachiwiri yomwe imakulolani kusankha "about.com" kapena "lxer.com" chakudya cha RSS.

Kuti muziyendetsa mumayimilira izi:

Sindikudziwa

kapena

sh rssget.sh zonsezi

Inu mukhoza ndithudi kutenganso zonse ndi zolemba kapena maudindo kuti mupereke ndondomeko chabe kapena maudindo basi.

Momwemonso ndondomeko yapamwambayi ikunena ngati yachiwiriyo ndi yovuta kwambiri ndipo yang'anirani chiganizo chachiwiri chomwe chiri chimodzimodzi kuchokera kulemba lapitalo kenaka ngati kachiwiri kawiri kawiri ndiyang'anitsaninso mawu apamtima kachiwiri kuti awonetse ngati akuwonetsera maudindo, malongosoledwe kapena chirichonse.

Script imeneyi imaperekedwa ngati chitsanzo cha mawu a chisa cha IF komanso pali zinthu zambiri zolakwika ndizolembazo zomwe zingatenge nkhani ina kuti ifotokoze zonsezi. Nkhani yaikulu ndi yakuti sizingatheke.

Tangoganizirani kuti mukufuna kuwonjezera chakudya china monga Daily Linux User kapena Linux Today? Script idzakhala yaikulu ndipo ngati mwaganiza kuti mukufuna kuti mawu a mkati mwa IF asinthe mukuyenera kusintha m'malo osiyanasiyana.

Ngakhale pali nthawi ndi malo a IF chisawonongeke ayenera kugwiritsa ntchito mochepa. KaƔirikaƔiri mumakhala njira yosinthira code yanu kuti musasowe nkomwe IF chisawonongeke. Ndidzafika pa nkhaniyi mu nkhani yotsatira.

Tiyeni tsopano tiyang'ane pa kukonzekera vuto la anthu omwe akulowa duff magawo. Mwachitsanzo mwalemba pamwambapa ngati wosuta alowetsa chinthu china chosiyana ndi "aboutdotcom" monga parameter yachiwiri ndiye mndandanda wa zolemba zikuwonekera kuchokera ku RSS feed kuchokera ku LXER mosasamala kanthu ngati wosuta alowetsa lxer kapena ayi.

Kuwonjezera apo ngati wosuta samalowa "zonse" kapena "kufotokozera" monga parameter yoyamba ndiye zosasintha ndi mndandanda wa maudindo omwe mwina kapena ayi zomwe wogwiritsa ntchitoyo akufuna.

Tayang'anani pa script yotsatirayi (kapena lembani ndi kuiyika mu fayilo yanu ya rssget.sh.

#! / bin / bash

ngati [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
ndiye
ngati [$ 1 = "onse"] || [$ 1 = "ndondomeko"] || [$ 1 = "mutu"]
ndiye
ngati [$ 2 = "aboutdotcom"]
ndiye

ngati [$ 1 = "onse"]
ndiye
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
Elif [$ 1 = "ndondomeko"]
ndiye
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

china
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
china
ngati [$ 1 = "onse"]
ndiye
rsstail -d-l -u http://lxer.com/module/newswire/headlines.rss
Elif [$ 1 = "ndondomeko"]
ndiye
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
china
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi

Chinthu choyamba kukumbukira ndi chakuti script tsopano ikukula bwino ndipo mungathe kuona mwamsanga momwe kunja kulili koti IF zikhoza kukhala.

Chidule chimene chili chofunika mulembayi ndi mawu a IF || ndemanga THENJI gawo pa mzere 2 ndi mzere 4.

The || amaimira OR. Kotero mzere ngati [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"] amafufuza ngati parameter yachiwiri ndi yofanana ndi "aboutdotcom" kapena "lxer". Ngati sichoncho ndiye kuti mawu a IF amatha chifukwa palibe liwu lina la kunja kwa IF.

Mofananamo pa mzere 4 mzere ngati [$ 1 = "onse"] || [$ 1 = "ndondomeko"] || [$ 1 = "title"] amafufuza ngati parameter yoyamba ikufanana ndi "zonse" kapena "kufotokoza" kapena "mutu".

Tsopano ngati wogwiritsa ntchito tchizi ya sh rssget.sh palibe yobwezeretsedwa pamene asanalandire mndandanda wa maudindo kuchokera ku LXER.

Chosiyana ndi || ndi &&. The && operator ikuimira AND.

Ndikufuna kuti malembawo awoneke ngati zoopsa koma zimapangitsa kufufuza kofunikira kuti zitsimikizire kuti woperekerayo wapereka magawo awiri.

#! / bin / bash

ngati [$ # -eq 2]
ndiye

ngati [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
ndiye
ngati [$ 1 = "onse"] || [$ 1 = "ndondomeko"] || [$ 1 = "mutu"]
ndiye
ngati [$ 2 = "aboutdotcom"]
ndiye

ngati [$ 1 = "onse"]
ndiye
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
Elif [$ 1 = "ndondomeko"]
ndiye
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

china
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
china
ngati [$ 1 = "onse"]
ndiye
rsstail -d-l -u http://lxer.com/module/newswire/headlines.rss
Elif [$ 1 = "ndondomeko"]
ndiye
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
china
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi
fi

Chidutswa chokhacho chomwe chiri chowonjezera mulembayi ndi mawu akunja a IF akutsatira: ngati [$ # -eq 2] . Ngati muwerenga nkhaniyo za magawo otsogolera mudzadziwa kuti $ # imabweretsera chiwerengero cha chiwerengero cha magawo olowera. The -aq imaimira ofanana. MFUNDO ya IF IFyo imayang'ana kuti wogwiritsa ntchitoyo adalowa 2 magawo ndipo ngati sichikutuluka popanda kuchita chilichonse. (Osati makamaka wokoma).

Ndikudziwa kuti phunziroli likukula kwambiri. Palibenso zambiri zoti zitheke sabata ino koma ndikufuna kuthandiza kutsegula script tisanatsirize.

Lamulo lomalizira lomwe mukufuna kuti muphunzire pazinthu zovomerezeka ndizolemba CASE.

#! / bin / bash


ngati [$ # -eq 2]
ndiye
ndondomeko ya $ 2 mkati
zovuta)
ndondomeko ya $ 1 mkati
zonse)
rsstail -d-l -u z.about.com/6/o/m/linux_p2.xml
;;
kufotokoza)
rsstail -d -u z.about.com/6/o/m/linux_p2.xml
;;
mutu)
rsstail -u z.about.com/6/o/m/linux.about.com/6/o/m/linux_p2.xml
;;
esac
;;
lxer)
ndondomeko ya $ 1 mkati
zonse)
rsstail -d-l -u http://lxer.com/module/newswire/headlines.rss
;;
kufotokoza)
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
;;
mutu)
rsstail -u http://lxer.com/module/newswire/headlines.rss
;;
esac
;;
esac
fi

Mlanduwu ndi njira yabwino yolembera NGATI NGATI NGATI ALI NGATI ALI NGATI.

Mwachitsanzo, lingaliro limeneli

NGATI chipatso = nthochi
Kenaka izi
NGATI NGATI zipatso = malalanje
Kenaka izi
KUKHALA NGATI NGATI zipatso = mphesa
Kenaka izi
PEZANI NGATI

ikhoza kulembedwa ngati:

zipatso zipatso
nthochi)
chitani izi
;;
malalanje)
chitani izi
;;
mphesa)
chitani izi
;;
esac

Kwenikweni chinthu choyamba pambuyo pa nkhaniyi ndi chinthu chomwe mukuyerekezera (chipatso). Kenaka chinthu chilichonse patsogolo pa mabotolo ndi chinthu chomwe mukuchiyerekezera ndi ngati chikugwirizana ndi mizere yapitayi ;; adzathamanga. Nkhani yowonongeka imathetsedwa ndi reac esac (yomwe ili kumbuyo).

M'ndandanda ya rssget.sh nkhani yamlandu imachotsa zinyama zina zovuta ngakhale kuti sizikulimbitsa bwino.

Kuti muwongolere bwino script ndikufunika kukuwonetsani ku mitundu.

Tayang'anani pa code ili:

#! / bin / bash

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

ngati [$ # -t 2] || [$ # -gt 2]
ndiye
lembani "ntchito: rssget.sh [all | description | title] [aboutdotcom | lxer]";
Potulukira;
fi

ndondomeko ya $ 1 mkati
zonse)
kusonyeza = "- d -l -u"
;;
kufotokoza)
show = "- d -u"
;;
mutu)
kuwonetsa = "-"
;;
esac

ndondomeko ya $ 2 mkati
zovuta)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
esac
rsstail $ amasonyeza $ url;

Kutanthauzira kumatanthawuza popereka dzina ndiyeno kugawira mtengo. Zitsanzo zotsatirazi ndizo zotsatirazi:

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

Script imatha kusinthidwa mosavuta pogwiritsa ntchito mitundu. Mwachitsanzo, piritsi iliyonse imayang'aniridwa payekha ndipo palibe nthano za IF.

Kuwonetseratu kusinthika tsopano kukhazikitsidwa malingana ndi kuti munasankha zonse, kufotokozera kapena mutu ndi kusintha kwa url kwayikidwa ku mtengo wa kusintha kwadotcom kapena mtengo wa kusintha kwa malingana ndi momwe mumasankha zadotcom kapena lxer.

Lamulo la rsstail tsopano likuyenera kugwiritsa ntchito phindu lawonetsera ndi url kuti liziyenda molondola.

Ngakhale kuti zosiyana zimangokhala powapatsa dzina, kuti azizigwiritse ntchito muyenera kuziika $ patsogolo pawo. Mwachilankhulo mawu osinthika = chiwerengero chimasintha mtengo kwa phindu pamene ndalama zosinthika zimandipatsa ine zomwe zili ndi zosinthika.

Zotsatirazi ndizolemba kotsiriza pa phunziroli.

#! / bin / bash

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

ngati [$ # -t 2] || [$ # -gt 2]
ndiye
talinganinso ntchito;
Potulukira;
fi

ndondomeko ya $ 1 mkati
zonse)
kusonyeza = "- d -l -u"
;;
kufotokoza)
show = "- d -u"
;;
mutu)
kuwonetsa = "-"
;;
*)
talinganinso ntchito;
Potulukira;
;;
esac

ndondomeko ya $ 2 mkati
zovuta)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
linuxtoday)
url = $ linuxtoday;
;;
tsikudaylinususer)
url = $ dailydayuxuser;
;;
*)
talinganinso ntchito;
Potulukira;
esac

rsstail $ amasonyeza $ url;

Zomwe zili pamwambapa zimatulutsa zambiri RSS komanso palinso kusintha komwe kumagwiritsa ntchito script ngati sangalowemo mitundu iwiri kapena amaika zosankhidwa zosayenera pazosiyana.

Chidule

Iyi yakhala nkhani yamasewero ndipo iyenera kuti yayenda mofulumira kwambiri. Muzitsogozo wotsatira ndikuwonetsani zosankha zonse za IF ngati zilipo ndipo pali zambiri zomwe mungakambirane pankhani zosiyanasiyana.

Palinso zina zomwe zingatheke kupititsa patsogolo zomwe zili pamwambazi ndipo izi zidzakumbidwa mtsogolomu zowonjezera pamene tikufufuzira zipika, zolembera ndi zochitika nthawi zonse.

Onetsetsani kuti Mungatani (Pukutsani pansi pamagulu kuti muwone mndandanda wa nkhani) gawo la l inux.about.com kuti mupeze malangizo othandiza kuchokera ku mawindo awiri a Windows ndi Ubuntu kukhazikitsa makina omwe amagwiritsa ntchito mabokosi a GNOME .