Роҳнамои навтарин барои машварат - Шартҳо ва вариантҳо

Муқаддима

Ба қисми сеюми «Пешакӣ роҳнамоӣ барои BASH» -ро даъват кунед. Агар шумо матни дуюми қаблӣ дошта бошед, пас шумо эҳтимол мехоҳед донед, ки ин дастурро ба дастурҳои дигари BASH таҳия мекунад.

Ин роҳнамо бо навовариҳои навтарини BASH навишта мешавад, ва чунон, ки хонандаи шумо дар бораи омӯхтани шумо меомӯзед. Гарчанде ки ман ба осебе ба BASH ҳастам, ман аз як таҳияи нармафзори нармафзори ройгон истифода мебарам, гарчанде аксарияти чизҳое, ки ман навиштаам, барои таҳияи платформаҳои Windows буд.

Шумо метавонед аз ду роҳнамо якумро дидан кунед:

Агар шумо навиштани BASH навиштан мехоҳед, ман пеш аз давом додани ин бо ду дастаи аввал тавсия медиҳам.

Дар ин дастур ман тавзеҳ медиҳам, ки чӣ тавр истифода бурдани шарҳҳои шартӣ барои санҷидани воҳиди корбар ва назорат кардани хати клавишӣ.

Насбкунӣ насб кунед

Барои пайравӣ ба ин дастур лозим аст, ки замима кардани хати фармонро бо номи rsstail насб кунед, ки барои хондан RSS-ҳо истифода бурда мешавад.

Агар шумо як намуди тақсимотии Debian / Ubuntu / Mint истифода баред:

sudo apt-get rsstail насб кунед

Барои Fedora / CentOS etc инҳоянд:

yum насб rsstail

Барои openSUSE чунин нависед:

zypper насб rsstail

Ҳисоботи IF

Терминалро кушоед ва файлро ба воситаи rssget.sh номгузорӣ кунед, ба воситаи нависед:

sudo nano rssget.sh

Дар доираи муҳаррири нано матни зерин ворид кунед:

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

Файлро бо пахшкунии CTRL ва O ва пас аз пахш кардани CTRL ва X.

Навиштани скриптро бо тариқи зерин нависед:

ШАҲРИ ҚӮРҒОНТЕППА

Навиштани рӯйхати унвонҳо аз хати RSS feed linux.about.com бармегардад.

Ин аст скрипти хеле муфид аст, зеро он танҳо унвонҳо аз як хати RSS гирифта мешавад, вале он ҳангоме, ки ба ёдрасии роҳи Linux.about.com хати RSS -ро ёдрас мекунад.

Бозгашти rssget.sh -ро дар nano боз кунед ва файлро таҳрир кунед, то ки:

#! / bin / bash

агар [$ 1 = "дақиқ"] бошад
сипас
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
ш

Навиштани скриптро бо тариқи зерин нависед:

ШАҲРИ ҚӮРҒОНТЕППА

Ин вақт хабари RSS бо унвон, пайванд ва тавсифи бозгашт меояд.

Биёед тафаккурро дар як ҷузъи тафаккур таҳлил кунем:

#! / Bin / bash дар ҳар як скрипт навишта мешавад. Хати навбатӣ асосан ба параметри ибтидоии параметре, ки аз ҷониби истифодабаранда пешбинӣ шудааст, ба назар гирифта, онро ба калимаи "тафовут" муқоиса мекунад. Агар параметри эффективӣ ва калимаҳои "функсия" мувофиқат карда бошанд, хато байни хат ва мӯҳтаво мувофиқ аст .

Дар скрипт дар боло равшан маълум аст. Агар шумо ягон параметрро ворид накунед, чӣ мешавад? Ҷавоб ба шумо хатогӣ дар хатҳои оператори ноаёни ноустувор.

Дигар бузургии асосӣ ин аст, ки агар шумо калимаи "дуруст" надошта бошед, ҳеҷ чиз рӯй нахоҳад дод. Яъне, агар шумо калимаи "вертикали" -ро пешниҳод накунед, скрипт як рӯйхати унвонҳо бармегардад.

Барои нусхабардории файли rssget.sh -ро боз кунед ва рамзи зеринро тағйир диҳед:

#! / bin / bash

агар [$ 1 = "дақиқ"] бошад
сипас
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
дигар
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ш

Файлро захира кунед ва онро бо тасвири зерин иҷро кунед:

ШАҲРИ ҚӮРҒОНТЕППА

Рӯйхати унвонҳо, шарҳҳо ва пайвандҳо пайдо мешаванд. Акнун онро бори дигар иҷро кунед:

Шаблонҳои rssget.sh

Ин вақт фақат як рӯйхати унвонҳо пайдо мешаванд.

Қисми иловагии ин скрипт дар сатри 4 аст ва изҳороти дигарро ҷорӣ мекунад. Одатан, аллакай тақриз медиҳад, агар параметрҳои аввалин калимаи "дақиқ" -ро ба тавсиф, пайвандҳо ва унвонҳо барои хондани RSS ирсол кунанд, агар параграфи аввалин фақат як рӯйхати унвонҳо дошта бошад.

Параграф каме беҳтар шуд, вале ҳанӯз ҳам камбудӣ аст. Агар шумо паролро ворид накунед, шумо ҳанӯз хато мекунед. Ҳатто агар шумо параметрро пешниҳод кунед, танҳо бо суханони шумо намехоҳед бигӯед, ки шумо фақат унвонҳо мехоҳед. Шумо шояд танҳо ба таври хато ба таври хаттӣ ишора карда бошед, ё шумо метавонед чӯҷаҳои ковоке, ки албатта бефоида аст, нависед.

Пеш аз он ки мо ин масъалаҳоро омӯхта ва тоза намоем, ман мехоҳам, ки як амри дигареро, ки бо изҳороти БРО мегузарад, нишон диҳам.

Тафсилоти rssget.sh-и худро таҳрир кунед, то ки:

#! / bin / bash

агар [$ 1 = "ҳама]" бошад
сипас
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
Элиф [$ 1 = тавсифот]]
сипас
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

дигар
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ш

Ман тасмим гирифтам, ки калимаро аз даст надихед ва онро бо ҳама иваз кунед. Ин қисми муҳим нест. Сутуни дар боло зикршуда эффекте, ки роҳи кӯтоҳтарини гуфтугӯи ELSE мебошад.

Акнун скрипт ба таври зерин кор мекунад. Агар шумо r rssget.sh ро истифода баред, пас шумо тасвирҳо, пайвандҳо ва унвонҳо мегиред. Агар ба ҷои он ки шумо танҳо r rssget.sh ро иҷро кунед, шумо танҳо унвонҳо ва шарҳҳо мегиред. Агар шумо ягон калимаи дигарро пешниҳод кунед, шумо номгӯи унвонҳоро мегиред.

Ин як роҳи зудтар бо рӯйхати баёнияҳои шартӣ муаррифӣ мешавад. Як роҳи алтернативии иҷро кардани ELIF ин аст, ки он чизеро,

Намунаи зерин нишон медиҳад,

#! / bin / bash

агар [$ 2 = "ondotcom"]
сипас
агар [$ 1 = "ҳама]" бошад
сипас
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
Элиф [$ 1 = тавсифот]]
сипас
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

дигар
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ш
дигар
агар [$ 1 = "ҳама]" бошад
сипас
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
Элиф [$ 1 = тавсифот]]
сипас
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
дигар
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ш
ш

Ҳама чизро бифаҳмед, ки агар дар он сурат мехоҳед ё нусхабардорӣ кунед ва онро ба файли rssget.sh нигоҳ кунед.

Параграфи дар боло овардашуда параграфи II -ро, ки ба шумо дар бораи ".com "ё" lxer.com "интихоб мекунад, хомӯш кардани RSS-ро пешниҳод мекунад.

Барои он, ки шумо онро дар зер чоп кунед:

r rssget.sh тамоми гиреҳҳо

ё

ШАҲРИ ҚӮРҒОНТЕППА

Шумо албатта метавонед ҳама бо тавсифи ё унвонҳо иваз кунед, ки тасвири танҳо ё унвонҳо.

Асосан коди дар боло зикршуда, агар параграфи дуввум дар бораи параметр аст, пас дуюмро бинависед, агар баёноте, ки ҳамон як сутуни дигарро дорад, агар параграфи дуввумӣ бошад, пас агар дар бораи он, ки оё унвонҳо, тасвирҳо, ё ҳама чиз.

Ин скрипт ҳамчун намунае аз баёнияи IF-и манфӣ дода шудааст ва чизҳои зиёде вуҷуд дорад, ки бо он скрипт он мақолаи дигарро фаҳмонда метавонад. Масъалаи асосӣ ин аст, ки он миқёспазир нест.

Тасаввур кунед, ки шумо мехостед, ки ба таври иловагӣ RSS-ро илова кунед, ба монанди Истифодабарандаи Everyday Linux ё Linux имрӯз? Параграф бузург мешавад ва агар шумо қарор кардед, ки мехоҳед изҳороти дохилии IF-ро тағйир диҳед, шумо бояд дар ҷойҳои гуногун тағирот кунед.

Ҳангоми мавҷуд набудани вақт ва ҷой барои як IFE вуҷуд доранд, ки онҳо бояд ба таври бесамар истифода шаванд. Одатан роҳе, ки рамзи худро такрор мекунад, то шумо ба ИИ дар ҳама ҳолат ниёз надоред. Ман ба ин мавзӯъ дар мақолаи оянда омадаам.

Биёед ҳоло дар масъалаи ҳалли масъалаи одамоне, ки параметрҳои парчамро ворид мекунанд, нигарем. Масалан, дар клавиатураи дар боло зикршуда, агар истифодабаранда чизи дигарро "aboutdotcom" ба параграфи 2 ворид кунад, пас рӯйхати мақолаҳо аз RSS feed аз LXER пайдо мешавад, новобаста аз он, ки корбар коршоям аст ё не.

Илова бар ин, агар истифодабаранда "ҳама" ё "тавсиф" -ро ҳамчун параметрҳои якум ворид накунад, пас ин хосият номгӯи унвонҳо мебошад, ки он метавонад истифода шавад.

Дар скрипти зерин ба назар мерасад (ё нусхабардорӣ кунед ва онро ба файли rssget.sh нигоҳ кунед.

#! / bin / bash

агар [$ 2 = "ondotcom"] || [$ 2 = "lxer"]
сипас
агар [$ 1 = "ҳама]" бошад [$ 1 = "тавсиф"] || [$ 1 = "унвон"]
сипас
агар [$ 2 = "ondotcom"]
сипас

агар [$ 1 = "ҳама]" бошад
сипас
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
Элиф [$ 1 = тавсифот]]
сипас
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

дигар
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ш
дигар
агар [$ 1 = "ҳама]" бошад
сипас
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
Элиф [$ 1 = тавсифот]]
сипас
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
дигар
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ш
ш
ш
ш

Аввалин чизе, ки қайд кардан аст, он аст, ки скрипт ҳоло хеле калон аст ва шумо метавонед зудтар фаҳмед, ки чӣ гуна идора кардани тафсирҳои IF-ҳо баста мешавад.

Боби, ки дар ин скрипти муҳим аст, муҳим аст САВОЛНИСЕД дар фасли 2 ва сатр 4.

Бештар ОМ намерасад. Пас, сатри агар [$ 2 = "ondotcom"] || [$ 2 = "lxer"] тафтиш мекунад, ки оё параметри параметрӣ ба "муҳофиз" ё "lxer" баробар аст. Агар ин тавр нашавад, ҳисоботи ММ-и пурраи он аст, зеро ягон далеле,

Ҳамин тавр дар сатри 4 хатӣ агар [$ 1 = "ҳама"] || [$ 1 = "тавсиф"] || [$ 1 = "унвон"] тафтиш мекунад, ки параграфи якум ба "ҳама" ё "тавсиф" ё "унвон" баробар аст.

Акнун, агар истифодабаранда кортро r rssget.sh иҷро мекунад, ҳеҷ чизи ҷориро баргардонида намешавад, ки пеш аз он ки онҳо аз рӯйхати унвонҳо аз LXER гирифта шаванд.

Дар муқоиса бо || &&. & Оператор барои инъикоси.

Ман мефаҳмам, ки скрипт ба назар мисли шикор назар мекунад, аммо ҳамаи чеки муҳимро барои боварӣ ҳосил мекунад, ки истифодабаранда 2 параметрро таъмин мекунад.

#! / bin / bash

агар [$ # -eq 2]
сипас

агар [$ 2 = "ondotcom"] || [$ 2 = "lxer"]
сипас
агар [$ 1 = "ҳама]" бошад [$ 1 = "тавсиф"] || [$ 1 = "унвон"]
сипас
агар [$ 2 = "ondotcom"]
сипас

агар [$ 1 = "ҳама]" бошад
сипас
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
Элиф [$ 1 = тавсифот]]
сипас
rsstail -d -u http://z.about.com/6/o/m/linux_p2.xml;

дигар
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ш
дигар
агар [$ 1 = "ҳама]" бошад
сипас
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
Элиф [$ 1 = тавсифот]]
сипас
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
дигар
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
ш
ш
ш
ш
ш

Ягонае, ки дар ин скрипт иловаи иловагӣ аст, изҳороти зеринест, ки дар поён оварда мешавад: агар [$ # -eq 2] . Агар шумо матнро дар бораи параметрҳои воридшударо бихонед, шумо медонед, ки $ # адад ададҳои параметрҳои даромадро бар мегардонад. The -eq муқоиса мекунад. Бинобар ин, тавзеҳи IF-ро тафтиш мекунад, ки корбар 2 параметрро ворид кардааст ва агар онҳо ин корро анҷом надода бошанд, бе он ки ягон чизи берунаро берун барорад. (На махсусан дӯстона).

Ман медонам, ки ин омӯзиш аксаран калон аст. Пеш аз он, ки мо ба итмом расонданро ба тартиб даровардан, ба шумо кӯмак мерасонам, ки ин ҳафта фаро мерасад.

Яке аз фармонҳои охирини ба шумо лозим аст, ки дар бораи изҳори шубҳа маълумот диҳед.

#! / bin / bash


агар [$ # -eq 2]
сипас
case $ 2 дар
aboutdotcom)
case $ 1 дар
ҳама)
rsstail -d -l -u z.about.com/6/o/m/linux_p2.xml
;;
шарҳ)
rsstail -d -u z.about.com/6/o/m/linux_p2.xml
;;
title)
rsstail -u z.about.com/6/o/m/linux.about.com/6/o/m/linux_p2.xml
;;
данд
;;
lxer)
case $ 1 дар
ҳама)
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
;;
шарҳ)
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
;;
title)
rsstail -u http://lxer.com/module/newswire/headlines.rss
;;
данд
;;
данд
ш

Ҳисоботи парванда як тарзи навиштани тарҷума мебошад.

Масалан, ин мантиқ

IF IFNAME = Банян
Баъд аз ин
МУҲИМОТИ МАЗМУНИ = Мандаринҳо
Баъд аз ин
ҲАМАИ МАҲСУЛОТ
Баъд аз ин
END IF

мумкин аст, ки:

меваи дарахт
бананҳо)
ин корро кунед
;;
афлесун)
ин корро кунед
;;
ангур)
ин корро кунед
;;
данд

Асосан як чизи якум баъд аз парванда чизест, ки шумо мехоҳед муқоиса кунед (яъне меваи). Пас аз ҳар як ҷузъи пеш аз клавиатура шумо чизи муқоисаатонро муқоиса кунед ва агар он бо хатҳои қаблӣ мувофиқ бошад; хоҳад шуд. Ҳисоботи парванда бо рагҳои баръакс қатъ карда мешавад (ки ин ҳолат бозмегардад).

Дар rssget.sh скрипт њуљљати њавошавї баъзе аз ин лоѓарии шадидро њал мекунад, гарчанде ки ин на он ќадар хуб нест.

Барои ба таври воқеӣ беҳтар кардани скрипт, ман бояд ба шумо таваккал кунам.

Ба кодекси зерин нигаред:

#! / bin / bash

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

агар [$ # -lt 2] || [$ # -gt 2]
сипас
echo "истифода: rssget.sh [ҳама | тавсиф | унвон] [aboutdotcom | lxer]";
Баромадгоҳ;
ш

case $ 1 дар
ҳама)
display = "- d -l -u"
;;
шарҳ)
display = "- d -u"
;;
title)
display = "- u"
;;
данд

case $ 2 дар
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
данд
rsstail $ display $ url;

Ваъдаи он бо додани номи ва сипас ба он арзиш додан муайян карда мешавад. Дар мисоли дар боло зикршуда, вазифаҳои таѓйирёбанда вуҷуд доранд:

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

Система бо истифодаи тағйирёбандаҳо фавран идора карда мешавад. Масалан, ҳар як параметр ба таври алоҳида коркард карда мешавад, бинобар ин, ишорае,

Воситаи тағирёбанда ҳоло вобаста аз он, ки оё шумо ҳамаи интихоб, тасвир ё унвонро интихоб намудаед, ва тағироти url ба арзиши тағйирёбии мубоҳисот ё арзиши тағйирёбандаи тағйирёбанда вобаста аст, вобаста ба он, ки оё шумо дар бораи версия ва ё кӯҳнавардӣ интихоб шудаед.

Фармони rsstail танҳо акнун бояд арзиши намоиши ва URL-ро барои дуруст кор кардан истифода барад.

Гарчанде, ки тағйирёбандаҳо танҳо ба воситаи номи онҳо дода шаванд, онҳо воқеан истифода мебаранд, шумо бояд дар пеши онҳо аломати $ муқаррар кунед. Бо ибораи дигар, тағйирёбанда тағйирёбиро тағйир медиҳад, агар ин маънои онро дорад, ки ман ба тағйирёбандаҳои тағйирёбанда мӯҳтоҷи тағйирёбиро медиҳам.

Дар охири ин скрипт барои ин дастур аст.

#! / 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"
use = "истифода: rssget.sh [ҳама | тавсиф | унвон] [lxer | aboutdotcom | everydaylinuxuser | linuxtoday]"
display = ""
url = ""

агар [$ # -lt 2] || [$ # -gt 2]
сипас
echo $ истифода мешавад;
Баромадгоҳ;
ш

case $ 1 дар
ҳама)
display = "- d -l -u"
;;
шарҳ)
display = "- d -u"
;;
title)
display = "- u"
;;
*)
echo $ истифода мешавад;
Баромадгоҳ;
;;
данд

case $ 2 дар
aboutdotcom)
url = $ aboutdotcom;
;;
lxer)
url = $ lxer;
;;
linuxtoday)
url = $ linuxtoday;
;;
ҳар рӯз такроран)
url = $ everydaylinuxuser;
;;
*)
echo $ истифода мешавад;
Баромадгоҳ;
данд

rsstail $ display $ url;

Дар скрипти дар боло овардашудаи RSS-ҳои бештарро ҷорӣ мекунад ва тағйироти истифодашаванда, ки истифодабарандаро чӣ тавр истифода мебарад, агар онҳо ба 2 вариант дохил нашудаанд ё ба вариантҳои нодуруст ворид карда шаванд.

Натиҷа

Ин мақолаи этикӣ буда, шояд ба зудӣ зудтар рафтааст. Дар дастури навбатӣ ба шумо ҳамаи вариантҳои муқоисавии тарҷумаҳои IF-ро нишон хоҳед дод ва дар бораи он, ки ба тағйирёбанда нисбатан зиёд аст, сӯҳбат кунед.

Бисёртар аст, ки барои такмил додани скриптҳои боло кор карда шавад ва ин дар роҳнамои оянда фаро гирифта мешавад, зеро мо пай дар пайи ҳалли калидҳо , равған ва ифодаҳои муқаррарӣ мебошем.

Нишон диҳед, ки чӣ гуна (Барои гузаштан ба категорияҳо барои дидани рӯйхати мақолаҳо) қисмати л. дар интерфейс, лутфан ин услубҳои муфидро аз Windows оғоз кунед ва Ubuntu барои насб кардани як мошини виртуалӣ бо истифодаи GNOME қуттиҳои .