തുടക്കക്കാർക്കുള്ള മാർഗ്ഗനിർദ്ദേശങ്ങൾ - വ്യവസ്ഥകളും വ്യത്യാസങ്ങളും

ആമുഖം

"തുടക്കക്കാർക്കുള്ള ഗൈഡ് ടു ബാഷ്" യുടെ മൂന്നാം ഭാഗത്തിലേക്ക് സ്വാഗതം. നിങ്ങൾ മുൻപത്തെ രണ്ട് ലേഖനങ്ങളും നഷ്ടപ്പെടുത്തിയാൽ ഈ ഗൈഡ് മറ്റ് ബേഷ് സ്ക്രിപ്റ്റിംഗ് ഗൈഡുകളിലേക്ക് വ്യത്യസ്തമാക്കുന്നത് എന്താണെന്ന് നിങ്ങൾ അറിയണം.

ഈ ഗൈഡ് ബാഷിന് പൂർണ്ണമായ ഒരു ആമുഖം രചിക്കുന്നതും ഞാൻ പഠിക്കുന്ന പോലെ നിങ്ങൾ പഠിക്കുന്ന വായനക്കാരനുമാണ്. ഞാൻ ബാഷിന് ഒരു പുതിയ അനുഭവമാണ്. ഒരു സോഫ്റ്റ്വെയർ ഡവലപ്മെന്റ് പശ്ചാത്തലത്തിൽ നിന്നാണ് ഞാൻ വന്നത്, എങ്കിലും ഞാൻ എഴുതിയ മിക്ക കാര്യങ്ങളും വിൻഡോസ് പ്ലാറ്റ്ഫോമിനായിട്ടുണ്ട്.

സന്ദർശിക്കുന്നതിലൂടെ നിങ്ങൾക്ക് ആദ്യ രണ്ടു ഗൈഡുകൾ കാണാൻ കഴിയും:

നിങ്ങൾ ബാഷ് സ്ക്രിപ്റ്റിംഗിനുള്ള പുതിയതെങ്കിൽ, ഇത് തുടരുന്നതിന് മുമ്പ് ആദ്യ രണ്ട് ഗൈഡുകൾ വായിച്ചുനോക്കുക.

ഈ ഗൈഡിൽ, ഉപയോക്തൃ ഇൻപുട്ട് പരിശോധിക്കുന്നതിനും ഒരു സ്ക്രിപ്റ്റ് എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് നിയന്ത്രിക്കുന്നതിനും എങ്ങനെ സോപാധികമായ പ്രസ്താവനകൾ ഉപയോഗിക്കാമെന്നതിനെ ഉച്ചരിക്കുന്നതായിരിക്കും.

Rsstail ഇൻസ്റ്റാൾ ചെയ്യുക

ഈ ഗൈഡ് പിന്തുടരുന്നതിന്, ആർഎസ്എസ് ഫീഡുകൾ വായിക്കാനായി ഉപയോഗിക്കുന്ന ഒരു സ്റ്റൈൽസ് ആപ്ലിക്കേഷൻ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതാണ്.

നിങ്ങൾ ഒരു ഡെബിയൻ / ഉബുണ്ടു / മിന്റ് അടിസ്ഥാനമാക്കിയുള്ള വിതരണ തരം ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ:

sudo apt-get install rsstail

ഫെഡോറ / സെന്റോസ് മുതലായവ താഴെ പറയുന്നവയിൽ ടൈപ്പ് ചെയ്യുക:

yum install rsstail

ഓപ്പൺസുസെയിൽ ഇനിപ്പറയുന്നവ ടൈപ്പ് ചെയ്യുക:

zypper install rsstail

IF പ്രസ്താവന

ഒരു ടെർമിനൽ തുറന്ന്, താഴെ പറയുന്നവ ടൈപ്പ് ചെയ്ത് rssget.sh എന്ന ഫയൽ ഉണ്ടാക്കുക:

സുഡോ നാനോ rssget.sh

നാനോ എഡിറ്ററുടെ താഴെ ടെക്സ്റ്റ് നൽകുക:

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

CTRL, O എന്നിവ അമർത്തി ഫയൽ സേവ് ചെയ്ത് CTRL, X എന്നിവ അമർത്തി പുറത്തുകടക്കുക.

താഴെപ്പറയുന്നവ ടൈപ്പ് ചെയ്തുകൊണ്ട് സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക:

sh rssget.sh

Linux.about.com RSS ഫീഡിൽ നിന്നുള്ള ശീർഷകങ്ങളുടെ ലിസ്റ്റും സ്ക്രിപ്റ്റ് നൽകും.

ഇത് ഒരു ഉപയോഗപ്രദമായ സ്ക്രിപ്റ്റ് അല്ല, കാരണം ഇത് ഒരു RSS ഫീഡിൽ നിന്നുള്ള ശീർഷകങ്ങൾ വീണ്ടെടുക്കുന്നു, എന്നാൽ Linux.about.com വഴിയുള്ള പാത്ത് ഓർക്കേണ്ടതായി വരും.

നാനോയിൽ വീണ്ടും rssget.sh സ്ക്രിപ്റ്റ് തുറന്നു്, ആ ഫയൽ നോക്കുക:

#! / bin / bash

[$ 1 = "verbose"]
പിന്നെ
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
fi

ഇനി പറയുന്നവ ടൈപ്പ് ചെയ്തുകൊണ്ട് സ്ക്രിപ്റ്റ് വീണ്ടും പ്രവർത്തിപ്പിക്കുക:

sh rssget.sh verbose

ഈ സമയം ആർഎസ്എസ് ഫീഡ് തലക്കെട്ട്, ലിങ്ക്, വിവരണം എന്നിവയോടൊപ്പം തിരികെ വരുന്നു.

അല്പം വിശദമായി നമുക്ക് സ്ക്രിപ്റ്റ് വിശകലനം ചെയ്യാം:

ഞങ്ങൾ എഴുതുന്ന എല്ലാ സ്ക്രിപ്റ്റുകളിലും #! / Bin / bash ലഭ്യമാകുന്നു. ഉപയോക്താവിന് നല്കുന്ന ആദ്യത്തെ ഇൻപുട്ട് പാരാമീറ്ററിലേക്ക് അടുത്ത വരി അടിസ്ഥാനപരമായി നോക്കുന്നു, അതിനെ "വെർബോസ്" എന്ന പദം താരതമ്യം ചെയ്യുന്നു. ഇൻപുട്ട് പാരാമീറ്റർ, "verbose" matches എന്ന വാക്കും പിന്നെ fi ഉം തമ്മിലുള്ള ലൈനുകൾ പ്രവർത്തിക്കുന്നു.

മുകളിലുള്ള സ്ക്രിപ്റ്റ് വ്യക്തമായി തെറ്റി. നിങ്ങൾ ഒരു ഇൻപുട്ട് പാരാമീറ്റർ നൽകുന്നില്ലെങ്കിൽ എന്തുസംഭവിക്കും? നിങ്ങൾക്ക് അപ്രതീക്ഷിത ഓപ്പറേറ്റർ വരികൾക്കിടയിൽ ഒരു തെറ്റ് ലഭിക്കും.

മറ്റൊരു പ്രധാന ന്യൂനത നിങ്ങൾ "verbose" എന്ന വാക്ക് നൽകിയില്ലെങ്കിൽ പിന്നെ ഒന്നും സംഭവിക്കുകയില്ല. നിങ്ങൾ വാചകം നൽകിയിട്ടില്ലെങ്കിൽ, സ്ക്രിപ്റ്റ് ശീർഷകങ്ങളുടെ ഒരു ലിസ്റ്റ് നൽകും.

Rssget.sh ഫയലിൽ മാറ്റം വരുത്തുന്നതിന് നാനോ വീണ്ടും ഉപയോഗിച്ചു് താഴെ പറഞ്ഞിരിക്കുന്ന രീതിയിൽ മാറ്റം വരുത്തുക:

#! / bin / bash

[$ 1 = "verbose"]
പിന്നെ
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;
fi

ഫയൽ സംരക്ഷിച്ച് താഴെപ്പറയുന്നവ ടൈപ്പ് ചെയ്തുകൊണ്ട് ഇത് പ്രവർത്തിപ്പിക്കുക:

sh rssget.sh verbose

ശീർഷകങ്ങൾ, വിവരണം, ലിങ്കുകൾ എന്നിവയുടെ ലിസ്റ്റ് പ്രത്യക്ഷപ്പെടും. ഇനി അത് വീണ്ടും റൺ ചെയ്യുക:

sh rssget.sh ശീർഷകങ്ങൾ

ഇത്തവണ പേരുകളുടെ ലിസ്റ്റ് കാണാം.

ലിപിയുടെ അധികഭാഗം ലൈൻ 4 ലും മറ്റേത് പ്രസ്താവന അവതരിപ്പിക്കുന്നു. അടിസ്ഥാനപരമായി ഇപ്പോൾ സ്ക്രിപ്റ്റ് പറയുന്നത് "verbose" എന്ന വാക്ക് ആദ്യത്തെ പരാമീറ്റർ RSS ഫെയറിനുള്ള വിവരണവും ലിങ്കുകളും തലക്കെട്ടുകളും സ്വീകരിക്കുന്നുവെങ്കിലും ആദ്യ പരാമീറ്റർ മറ്റൊന്നില്ലങ്കിൽ ഒരു തലക്കെട്ടിന്റെ ലിസ്റ്റ് ലഭിക്കും.

സ്ക്രിപ്റ്റ് അല്പം മെച്ചപ്പെട്ടുവെങ്കിലും ഇപ്പോഴും പിഴവ് രേഖപ്പെടുത്തിയിട്ടുണ്ട്. നിങ്ങൾ ഒരു പാരാമീറ്റർ നൽകുന്നതിൽ പരാജയപ്പെട്ടാൽ നിങ്ങൾക്ക് ഇപ്പോഴും പിശക് നേരിടും. നിങ്ങൾ ഒരു പരാമീറ്റർ നൽകുകയാണെങ്കിൽ പോലും, വെർബോസ് നിങ്ങൾക്ക് ആവശ്യമില്ല എന്നു പറഞ്ഞാൽ മാത്രം നിങ്ങൾക്ക് ശീർഷകങ്ങൾ ആവശ്യമാണ്. ഉദാഹരണത്തിന് നിങ്ങൾ തെറ്റായ വാക്കുകളെ തെറ്റായി നൽകിയിരിക്കാം അല്ലെങ്കിൽ നിങ്ങൾ അർഥശൂന്യമായ പാജിനുകൾ ടൈപ്പ് ചെയ്തിട്ടുണ്ടാകാം.

ഞങ്ങൾ ഈ പ്രശ്നങ്ങൾ പരിശോധിച്ച്, ക്ലിയർ ചെയ്യുന്നതിന് മുൻപ് നിങ്ങൾക്ക് IF സ്റ്റേറ്റ്മെന്റിനൊപ്പം ഒരു കമാൻഡിനെ കാണിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു.

താഴെ കാണുവാൻ നിങ്ങളുടെ rssget.sh സ്ക്രിപ്റ്റ് എഡിറ്റുചെയ്യുക:

#! / bin / bash

[$ 1 = "എല്ലാം"]
പിന്നെ
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
എലിഫ് [$ 1 = "description"]
പിന്നെ
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;
fi

ഞാൻ വാക്ക് വെർബോസ് ആശ്വാസം ഒപ്പം അതു മാറ്റി പകരം വയ്ക്കാൻ തീരുമാനിച്ചു. അത് പ്രധാന ഭാഗമല്ല. മുകളിൽ സ്ക്രിപ്റ്റ് Elif പരിചയപ്പെടുത്തുന്നു ELSE IF പറയുന്ന ഒരു ചെറിയ വഴി.

ഇപ്പോൾ സ്ക്രിപ്റ്റ് പ്രവർത്തിക്കുന്നു. നിങ്ങൾ sh rssget.sh പ്രവർത്തിപ്പിച്ചാൽ, നിങ്ങൾക്ക് വിവരണങ്ങൾ, ലിങ്കുകൾ, ശീർഷകങ്ങൾ എന്നിവ ലഭിക്കും. പകരം sh sh rssget.sh വിവരണം പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ നിങ്ങൾക്ക് ശീർഷകങ്ങളും വിവരണങ്ങളും ലഭിക്കും. നിങ്ങൾ മറ്റേതെങ്കിലും വാക്ക് നൽകുകയാണെങ്കിൽ നിങ്ങൾക്ക് ഒരു ടൈറ്റിലുകൾ ലഭിക്കും.

ഇത് സോപാധികമായ പ്രസ്താവനകളുടെ ലിസ്റ്റുമായി പെട്ടെന്ന് വരുന്ന ഒരു വഴി പരിചയപ്പെടുത്തുന്നു. കൂട്ടിചേർത്ത IF സ്റ്റേറ്റ്മെന്റുകൾ എന്നറിയാൻ ഉപയോഗിക്കാമെന്നതാണ് ELIF എന്നതിനുള്ള മറ്റൊരു മാർഗ്ഗം.

IF പ്രസ്താവനകൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് കാണിക്കുന്ന ഒരു ഉദാഹരണം താഴെ കൊടുക്കുന്നു:

#! / bin / bash

[$ 2 = "aboutdotcom"]
പിന്നെ
[$ 1 = "എല്ലാം"]
പിന്നെ
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
എലിഫ് [$ 1 = "description"]
പിന്നെ
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;
fi
വേറെ
[$ 1 = "എല്ലാം"]
പിന്നെ
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
എലിഫ് [$ 1 = "description"]
പിന്നെ
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
വേറെ
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi

നിങ്ങൾക്ക് അത് ഇഷ്ടപ്പെടുകയോ അല്ലെങ്കിൽ നിങ്ങളുടെ rssget.sh ഫയലിൽ പകർത്തി ഒട്ടിക്കുകയോ ചെയ്യുക.

മുകളിലുള്ള സ്ക്രിപ്റ്റ്, രണ്ടാമത്തെ പാരാമീറ്റർ അവതരിപ്പിക്കുന്നു, ഇത് ഒരു "RSS.com" അല്ലെങ്കിൽ "lxer.com" എന്ന ആർഎസ്എസ് ഫീഡിനെ തിരഞ്ഞെടുക്കാം.

ഇത് താഴെപ്പറയുന്നവയിൽ നിങ്ങൾ ടൈപ്പ് ചെയ്യാൻ:

sh rssget.sh എല്ലാം aboutdotcom

അഥവാ

sh rssget.sh എല്ലാ lxer- യും

ലളിതമായ വിവരണങ്ങളോ ടൈറ്റിലുകളോ നൽകുന്നതിനായി വിവരണങ്ങളോ ശീർഷകങ്ങളോ എല്ലാം നിങ്ങൾക്ക് തീർച്ചയായും മാറ്റിസ്ഥാപിക്കാനാകും.

മുകളിലുള്ള കോഡ് രണ്ടാമത്തെ പരാമീറ്റർ aboutdotcom ആണെങ്കിൽ രണ്ടാമത്തെ പരാമീറ്റർ lxer ആണെങ്കിൽ രണ്ടാമത്തെ പരാമീറ്റർ മറ്റൊന്ന് മുൻപത്തെ സ്ക്രിപ്റ്റിൽ നിന്ന് മറ്റൊന്നിലേയ്ക്ക് നോക്കിയാൽ രണ്ടാമത്തെ പരാമര്ശം നോക്കുക, ആന്തരിക പ്രസ്താവന വീണ്ടും തലക്കെട്ടുകളും വിവരണങ്ങളും കാണിക്കണമോ എന്ന് തീരുമാനിക്കാൻ അല്ലെങ്കിൽ എല്ലാം.

ആ സ്ക്രിപ്റ്റ് നൽകിയിരിക്കുന്നത് നെസ്റ്റുചെയ്ത IF പ്രസ്താവനയുടെ ഒരു ഉദാഹരണം. ആ ലിപിയിൽ നിരവധി കാര്യങ്ങളുണ്ട്, അവയെല്ലാം വിശദീകരിക്കുന്നതിന് മറ്റൊരു ലേഖനം എടുക്കും. പ്രധാന പ്രശ്നം അത് വിപുലീകരിക്കാനാവില്ല എന്നതാണ്.

നിങ്ങൾ Everyday ലിനക്സ് യൂസർ അല്ലെങ്കിൽ ലിനക്സ് ടുസ് പോലുള്ള മറ്റൊരു RSS ഫീഡുകൾ ചേർക്കാൻ ആഗ്രഹിക്കുന്നെന്ന് കരുതുക? സ്ക്രിപ്റ്റ് വലുതായിത്തീരും, ആന്തരിക IF നിർദ്ദേശം മാറ്റണമെന്ന് നിങ്ങൾ തീരുമാനിച്ചെങ്കിൽ അത് പല സ്ഥലങ്ങളിൽ മാറ്റം വരുത്തണം.

അവർ കുറച്ചു കൂടി ഉപയോഗിക്കേണ്ടിവരുമ്പോൾ അവയെ കൂട്ടിയിണക്കാനുളള സമയം, സ്ഥലം എന്നിവയുണ്ട്. സാധാരണയായി നിങ്ങളുടെ കോഡ് റിപ്ലേറ്റർ ചെയ്യുന്നതിനുള്ള ഒരു വഴി സാധാരണയായി നിങ്ങൾക്ക് ആവശ്യമില്ല. ഭാവിയിലെ ഒരു ലേഖനത്തിൽ ഞാൻ ഈ വിഷയത്തിലേക്ക് വരാം.

ഡഫ് പരാമീറ്ററുകൾ പ്രവേശിക്കുന്ന ആളുകളുടെ പ്രശ്നം പരിഹരിക്കുന്നതിന് ഇപ്പോൾ നമുക്ക് നോക്കാം. ഉദാഹരണത്തിന് ഉപയോക്താവിന് "aboutdotcom" എന്നത് രണ്ടാമത്തെ പാരാമീറ്ററായി മറ്റൊന്നിൽ പ്രവേശിച്ചാൽ മുകളിലുള്ള സ്ക്രിപ്റ്റ് LXER ൽ നിന്നും ആർ.എസ്.എസ് ഫീഡിൽ നിന്നും ലേഖനങ്ങളുടെ ലിസ്റ്റിൽ നിന്നും പ്രത്യക്ഷപ്പെടുന്നു.

കൂടാതെ, ഉപയോക്താവ് "എല്ലാം" അല്ലെങ്കിൽ "വിവരണം" 1 പാരാമീറ്റർ ആയി നൽകുന്നില്ലെങ്കിൽ, സ്വതവേയുള്ള ഉപയോക്താക്കൾ ഉദ്ദേശിച്ചതെന്താണെന്നോ അല്ലാത്തതോ ആയ ഒരു തലക്കെട്ടാണു്.

ഈ സ്ക്രിപ്റ്റ് നോക്കുക (അല്ലെങ്കിൽ നിങ്ങളുടെ rssget.sh ഫയലിൽ പകർത്തി ഒട്ടിക്കുക.

#! / bin / bash

[$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
പിന്നെ
[$ 1 = "എല്ലാം"] || [$ 1 = "description"] || [$ 1 = "ശീർഷകം"]
പിന്നെ
[$ 2 = "aboutdotcom"]
പിന്നെ

[$ 1 = "എല്ലാം"]
പിന്നെ
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
എലിഫ് [$ 1 = "description"]
പിന്നെ
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;
fi
വേറെ
[$ 1 = "എല്ലാം"]
പിന്നെ
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
എലിഫ് [$ 1 = "description"]
പിന്നെ
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
വേറെ
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi

സ്ക്രിപ്റ്റ് ഇപ്പോൾ വളരെയധികം വലുതായിക്കൊണ്ടിരിക്കുന്നുവെന്നതും ശ്രദ്ധാപൂർവ്വമുള്ള നിയന്ത്രണങ്ങൾ എങ്ങനെ നീക്കംചെയ്യാൻ കഴിയുന്നുവെന്നതും നിങ്ങൾക്ക് വേഗത്തിൽ മനസ്സിലാക്കാൻ കഴിയുമെന്ന കാര്യം ശ്രദ്ധിക്കുക.

ഈ സ്ക്രിപ്റ്റിൽ പ്രധാനപ്പെട്ടതാണ് IF സ്റ്റേറ്റ്മെന്റ് || ലൈൻ 2 ലെ ലൈൻ, ലൈൻ 4 എന്നിവയിലെ THEN സെക്ഷൻ.

ദിസ് അല്ലെങ്കിൽ നിലകൊള്ളുന്നു. അതിനാൽ വരി [$ 2 = "aboutdotcom"] || [$ 2 = "lxer"] രണ്ടാമത്തെ പരാമീറ്റർ "aboutdotcom" അല്ലെങ്കിൽ "lxer" എന്നതിന് തുല്യമോ എന്ന് പരിശോധിക്കുന്നു. അങ്ങനെയല്ലെങ്കിൽ, IF സ്റ്റേറ്റ്മെന്റ് പൂർത്തിയായി കഴിഞ്ഞു. കാരണം, ബാഹ്യമായ മിക്ക IF- ക്കും മറ്റേതൊരു പ്രസ്താവനയും ഇല്ല .

അതുപോലെ വരി 4 ന് വരി [[1 = "എല്ലാം"] ആണെങ്കിൽ || [$ 1 = "description"] || [$ 1 = "title"] ആദ്യത്തെ പരാമീറ്റർ "എല്ലാം" അല്ലെങ്കിൽ "വിവരണം" അല്ലെങ്കിൽ "ശീർഷകം" എന്നോ തുല്യമാണോ എന്നത് പരിശോധിക്കുന്നു.

ഇപ്പോൾ ShX rssget.sh ഉരുളക്കിഴങ്ങ് ചീസ് ഒന്നും പ്രവർത്തിപ്പിക്കുന്നില്ലെങ്കിലും LXER ൽ നിന്നുള്ള പേരുകളുടെ ലിസ്റ്റ് ലഭിക്കുന്നതിന് മുമ്പ് അവയ്ക്ക് ഒന്നും നൽകില്ല.

വിപരീതം | ആണ് &&. && ഓപ്പറേറ്റർ എന്നത് എ & നാണ്.

ഞാൻ സ്ക്രിപ്റ്റ് ഒരു പേടിസ്വപ്നം പോലെയാകാൻ പോകുകയാണ്, പക്ഷേ ഉപയോക്താവ് പ്രധാനപ്പെട്ട 2 പരാമീറ്ററുകൾ നൽകിയിട്ടുണ്ടെന്ന് ഉറപ്പുവരുത്തുന്നതിന് എല്ലാ പ്രധാന പരിശോധനയും ചെയ്യുന്നു.

#! / bin / bash

[$ # -eq 2]
പിന്നെ

[$ 2 = "aboutdotcom"] || [$ 2 = "lxer"]
പിന്നെ
[$ 1 = "എല്ലാം"] || [$ 1 = "description"] || [$ 1 = "ശീർഷകം"]
പിന്നെ
[$ 2 = "aboutdotcom"]
പിന്നെ

[$ 1 = "എല്ലാം"]
പിന്നെ
rsstail -d -l -u http://z.about.com/6/o/m/linux_p2.xml;
എലിഫ് [$ 1 = "description"]
പിന്നെ
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;
fi
വേറെ
[$ 1 = "എല്ലാം"]
പിന്നെ
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
എലിഫ് [$ 1 = "description"]
പിന്നെ
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
വേറെ
rsstail -u http://z.about.com/6/o/m/linux_p2.xml;
fi
fi
fi
fi
fi

ഈ സ്ക്രിപ്റ്റിൽ അധികമുള്ള ഒരൊറ്റ ബിറ്റ് താഴെ IF പ്രസ്താവനയാണ്: [$ # -eq 2] . ഇൻപുട്ട് പരാമീറ്ററുകളെക്കുറിച്ചുള്ള ലേഖനം നിങ്ങൾ വായിച്ചാൽ, $ # ഇന്പുട്ട് പാരാമീറ്ററുകളുടെ എണ്ണത്തിന്റെ എണ്ണം കണക്കാക്കുന്നു. -eq തുല്യമായി നിലകൊള്ളുന്നു. അതിനാൽ IF പ്രസ്താവന ഉപയോക്താവ് 2 പരാമീറ്ററുകളിലേക്ക് പ്രവേശിക്കുന്നുണ്ടെങ്കിലും അവ ചെയ്തിട്ടില്ലെങ്കിൽ അത് ഒന്നും ചെയ്യാതെ തന്നെ പുറത്തുപോവുകയാണ്. (പ്രത്യേകിച്ച് ഫ്രണ്ട്ലി അല്ല).

ഈ ട്യൂട്ടോറിയൽ വളരെ വലുതായിരിക്കുന്നു എന്ന് എനിക്കറിയാം. ഈ ആഴ്ചയെ മറികടക്കാൻ കൂടുതൽ കാര്യങ്ങളൊന്നും ഇല്ലെങ്കിലും ഞങ്ങൾ പൂർത്തിയാകുന്നതുവരെ സ്ക്രിപ്റ്റ് മെച്ചപ്പെടുത്താൻ സഹായിക്കണം.

നിങ്ങൾ നിർദ്ദേശിക്കുന്ന പ്രസ്താവനകളെക്കുറിച്ച് അറിയാൻ കഴിയുന്ന ഒരു അവസാന ആജ്ഞയാണ് CASE സ്റ്റേറ്റ്മെന്റ്.

#! / bin / bash


[$ # -eq 2]
പിന്നെ
കേസ് $ 2 ഇൻ
aboutdotcom)
കേസ് $ 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
;;;
ശീർഷകം)
rsstail -u z.about.com/6/o/m/linux.about.com/6/o/m/linux_p2.xml
;;;
esac
;;;
lxer)
കേസ് $ 1 ൽ
എല്ലാം)
rsstail -d -l -u http://lxer.com/module/newswire/headlines.rss
;;;
വിവരണം)
rsstail -d -u http://lxer.com/module/newswire/headlines.rss
;;;
ശീർഷകം)
rsstail -u http://lxer.com/module/newswire/headlines.rss
;;;
esac
;;;
esac
fi

കേസ് പ്രസ്താവന IF ELSE IF ELSE IF IF എഴുതുവാൻ വളരെ രസകരമാണ്.

ഉദാഹരണത്തിന് ഈ ലോജിക്

പഴം = വാഴപ്പഴം
ഇതെങ്ങനെ
ഞാനത് ഫലം = നാരങ്ങാ
ഇതെങ്ങനെ
ഇല + മുന്തിരി = മുന്തിരി
ഇതെങ്ങനെ
അവസാനമായി IF

ഇങ്ങനെ എഴുതാൻ കഴിയും:

പഴം
വാഴപ്പഴം)
ഇതു ചെയ്യാൻ
;;;
നാരങ്ങാ)
ഇതു ചെയ്യാൻ
;;;
മുന്തിരി)
ഇതു ചെയ്യാൻ
;;;
esac

അടിസ്ഥാനപരമായി സാഹചര്യത്തിന് ശേഷം ആദ്യ വസ്തു നിങ്ങൾ താരതമ്യം ചെയ്യാൻ പോകുന്നു (അതായത് ഫലം). അതിനുശേഷം ഓരോ ഇനവും ബ്രാക്കറ്റുകൾക്ക് മുൻപായി നിങ്ങൾ താരതമ്യം ചെയ്യുന്നതും അതിനു മുൻപുള്ള വരിയുമായി പൊരുത്തപ്പെടുന്നുണ്ടെങ്കിൽ; തുറക്കും. റിവേഴ്സ് എസ്കാക്കിൽ ഒരു കേസ് പ്രസ്താവന നിർത്തലാക്കപ്പെടുന്നു (അത് പിന്നിലേക്ക് മാറുന്നു).

Rssget.sh സ്ക്രിപ്റ്റിൽ, കേസ് പ്രസ്താവനകൾ ആ ഭീകരമായ നെസ്റ്റിങ്ങിൽ നിന്ന് നീക്കം ചെയ്യുന്നുവെങ്കിലും അത് ശരിക്കും മെച്ചപ്പെടുത്തുന്നില്ല.

സ്ക്രിപ്റ്റ് മെച്ചപ്പെടുത്താൻ എനിക്ക് വേരിയബിളുകളിലേക്ക് പരിചയപ്പെടുത്തേണ്ടതുണ്ട്.

താഴെക്കാണുന്ന കോഡ് നോക്കുക:

#! / bin / bash

lxer = "lxer.com/module/newswire/headlines.rss"
aboutdotcom = "z.about.com/6/o/m/linux_p2.xml"
പ്രദർശനം = ""
url = ""

[$ # -lt 2] || എങ്കിൽ [$ # -Gt 2]
പിന്നെ
echo "ഉപയോഗം: rssget.sh [എല്ലാം | വിവരണം | ശീർഷകം] [aboutdotcom | lxer]";
പുറത്ത്;
fi

കേസ് $ 1 ൽ
എല്ലാം)
display = "- d -l -u"
;;;
വിവരണം)
display = "- d -u"
;;;
ശീർഷകം)
display = "- u"
;;;
esac

കേസ് $ 2 ഇൻ
aboutdotcom)
url = $ aboutdotcom;
;;;
lxer)
url = $ lxer;
;;;
esac
rsstail $ $ url പ്രദർശിപ്പിക്കുക;

ഒരു വേരിയബിൾ നിർവചിച്ചിരിക്കുന്നത് ഒരു പേര് നൽകി അതിനായി ഒരു മൂല്യം നൽകിക്കൊണ്ടാണ്. മുകളിൽ പറഞ്ഞിരിക്കുന്ന ഉദാഹരണത്തിൽ ചുവടെയുള്ള ചരങ്ങൾ:

lxer = "lxer.com/module/newswire/headlines.rss"
aboutdotcom = "z.about.com/6/o/m/linux_p2.xml"
പ്രദർശനം = ""
url = ""

വേരിയബിളുകൾ ഉപയോഗിച്ച് സ്ക്രിപ്റ്റ് തൽക്ഷണം കൂടുതൽ കൈകാര്യം ചെയ്യാവുന്നതാണ്. ഉദാഹരണത്തിനു് ഓരോ പരാമീറ്ററും വെവ്വേറെ കൈകാര്യം ചെയ്യുന്നു. അതിനാൽ IF പ്രസ്താവനകൾ ഒന്നുമില്ല.

ഡിസ്പ്ലേ വേരിയബിൾ ഇപ്പോൾ നിങ്ങൾ എല്ലാം തിരഞ്ഞെടുത്ത്, വിവരണം അല്ലെങ്കിൽ ശീർഷകവും url വേരിയബിളും aboutdotcom വേരിയബിളിന്റെ മൂല്യത്തിലേക്ക് അല്ലെങ്കിൽ നിങ്ങൾ aboutdotcom അല്ലെങ്കിൽ lxer തിരഞ്ഞെടുത്തിട്ടുണ്ടോ എന്നതിനെ ആശ്രയിച്ച് lxer വേരിയബിളിന്റെ മൂല്യം ക്രമീകരിച്ചിട്ടുണ്ടോ എന്ന് സജ്ജമാക്കിയിട്ടുണ്ട്.

ഇപ്പോൾ rsstail കമാൻഡ് ശരിയായി റൺ ചെയ്യുന്നതിനു് ഡിസ്പ്ലേയും url- ഉം ഉപയോഗിക്കേണ്ടതുണ്ട്.

വേരിയബിളുകൾ അവ ഒരു പേര് നൽകിക്കൊണ്ട് സജ്ജീകരിച്ചിരിക്കുന്നു, യഥാർത്ഥത്തിൽ അവയെ നിങ്ങൾ ഉപയോഗിക്കുന്നതിന് നിങ്ങൾ ഒരു $ അടയാളം നൽകണം. മറ്റൊരുവിധത്തിൽ പറഞ്ഞാൽ, വേരിയബിൾ = മൂല്യം ഒരു മൂല്യത്തിലേക്ക് വേരിയബിൾ ചെയ്യുന്നു, എന്നാൽ $ variable എന്നെ വേരിയബിളിന്റെ ഉള്ളടക്കങ്ങൾ നൽകും.

ഈ ട്യൂട്ടോറിയലിനുള്ള അന്തിമ സ്ക്രിപ്റ്റ് ഇനിപറയുന്നതാണ്.

#! / 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"
usage = "ഉപയോഗം: rssget.sh [എല്ലാം | വിവരണം | ശീർഷകം] [lxer | aboutdotcom | everydaylinuxuser | linuxtoday]"
പ്രദർശനം = ""
url = ""

[$ # -lt 2] || എങ്കിൽ [$ # -Gt 2]
പിന്നെ
echo $ ഉപയോഗം;
പുറത്ത്;
fi

കേസ് $ 1 ൽ
എല്ലാം)
display = "- d -l -u"
;;;
വിവരണം)
display = "- d -u"
;;;
ശീർഷകം)
display = "- u"
;;;
*)
echo $ ഉപയോഗം;
പുറത്ത്;
;;;
esac

കേസ് $ 2 ഇൻ
aboutdotcom)
url = $ aboutdotcom;
;;;
lxer)
url = $ lxer;
;;;
linuxtoday)
url = $ linuxtoday;
;;;
everydaylinuxuser)
url = $ everydaylinuxuser;
;;;
*)
echo $ ഉപയോഗം;
പുറത്ത്;
esac

rsstail $ $ url പ്രദർശിപ്പിക്കുക;

മുകളിൽ പറഞ്ഞിരിക്കുന്ന സ്ക്രിപ്റ്റ് കൂടുതൽ ആർ.എസ്.എസ് ഫീഡുകൾ അവതരിപ്പിക്കുന്നു. കൂടാതെ, ഒരു വേരിയബിൾ, അവർ രണ്ട് വേരിയബിളുകൾ എന്റർ ചെയ്യുകയോ അല്ലെങ്കിൽ വേരിയബിളുകൾക്ക് തെറ്റായ ഓപ്ഷനുകൾ നൽകുമ്പോഴോ സ്ക്രിപ്റ്റ് എങ്ങനെ ഉപയോഗിക്കണമെന്ന് ഉപയോക്താവിനെ അറിയിക്കുന്നു.

സംഗ്രഹം

ഇതാണ് ഒരു ഇതിഹാസകാവശ്യം. വളരെ വേഗത്തിലായിരുന്നു അത്. അടുത്ത ഗൈഡിൽ ഞാൻ IF പ്രസ്താവനകളിലെ എല്ലാ താരതമ്യ ഓപ്ഷനുകളും കാണിക്കും, മാത്രമല്ല വേരിയബിളുമായി ബന്ധപ്പെട്ട കൂടുതൽ സംസാരിക്കാനും കഴിയും.

മുകളിൽ കൊടുത്തിരിക്കുന്ന സ്ക്രിപ്റ്റ് മെച്ചപ്പെടുത്തുന്നതിന് കൂടുതൽ കാര്യങ്ങളുണ്ട്. ഇത് ലൂപ്പുകളും ഗ്രെപും റെഗുലർ എക്സ്പ്രഷനുകളും പര്യവേക്ഷണം ചെയ്യുന്നതിനാൽ ഇത് ഭാവിയിൽ ഗൈഡുകളിൽ ഉൾപ്പെടുത്തും.

ഗ്നോം ബോക്സുകൾ ഉപയോഗിച്ച് ഒരു വിർച്ച്വൽ മഷീൻ സജ്ജമാക്കുന്നതിന് വിൻഡോസ്, ഉബുണ്ടു, ഡ്യൂവൽ ബൂട്ടിംഗ് മുതൽ കൂടുതൽ ഉപയോഗപ്രദമായ ഗൈഡുകൾ കണ്ടെത്തുന്നതിന്, How To (Articles ലേഖനങ്ങളുടെ പട്ടിക കാണാൻ താഴേക്ക് സ്ക്രോൾ ചെയ്യുക) l inux.about.com എന്ന വിഭാഗം കാണുക.