തുടക്കക്കാർക്കുള്ള ബാഷുകൾ - ഇൻപുട്ട് പാരാമീറ്ററുകൾ

തുടക്കക്കാർക്ക് ഒരു തുടക്കക്കാരനെഴുതിയ ഒരേയൊരു ബാക്കിയുള്ള ട്യൂട്ടോറിയലാണ് തനതായ പ്രോഗ്രാമിംഗ് ബൈനറി ടൂർണമെന്റിലെ ബൈനർ ഗൈഡ് ടു ബാഷ് പരമ്പരയുടെ രണ്ടാം ഭാഗത്തിലേക്ക് സ്വാഗതം.

ഈ ഗൈഡിന്റെ വായനക്കാർക്ക് അവരുടെ അറിവ് പടുത്തുയർത്തും. എന്റെ അറിവുകളെ ഞാനെല്ലാം വളർത്തിയെടുക്കും. അതിനാവട്ടെ, നമുക്ക് ഒടുവിൽ എല്ലാ പുഞ്ചിരി സ്ക്രിപ്റ്റുകളേയും എഴുതാൻ കഴിയും.

കഴിഞ്ഞ ആഴ്ച ഞാൻ ആദ്യ വരിയിൽ "Hello World" എന്ന പദങ്ങൾ പ്രദർശിപ്പിച്ചുകൊണ്ട് ഞാൻ സൃഷ്ടിച്ചു . ടെക്സ്റ്റ് എഡിറ്റർമാർ, ഒരു ടെർമിനൽ വിൻഡോ എങ്ങനെ തുറക്കും, നിങ്ങളുടെ സ്ക്രിപ്റ്റുകൾ എങ്ങിനെ പ്രദർശിപ്പിക്കാം, "Hello World" എന്ന വാക്കുകൾ, ക്വോട്ടുകൾ ("") തുടങ്ങിയ എസ്കേപ്പ് പ്രതീകങ്ങളിലെ ചില മെച്ചപ്പെട്ട പോയിൻറുകൾ എങ്ങനെ പ്രദർശിപ്പിക്കാറുണ്ട്.

ഈ ആഴ്ച ഞാൻ ഇൻപുട്ട് പാരാമീറ്ററുകൾ മറയ്ക്കുവാൻ പോകുന്നു. ഈ വിഷയത്തെക്കുറിച്ച് പഠിപ്പിക്കുന്ന മറ്റു മാർഗ്ഗനിർദ്ദേശങ്ങളുണ്ട്, പക്ഷെ അവർ വളരെ കുറഞ്ഞ അളവിലുള്ള കാര്യത്തിലേക്ക് എത്തുന്നതും ഒരുപക്ഷേ വളരെയധികം വിവരങ്ങൾ നൽകുന്നതും ഞാൻ കാണുന്നു.

ഒരു പാരാമീറ്റർ എന്താണ്?

അവസാന ട്യൂട്ടോറിയലിൽ നിന്ന് "ഹലോ വേൾഡ്" സ്ക്രിപ്റ്റിൽ അത് വളരെ സ്റ്റാറ്റിക് ആയിരുന്നു. സ്ക്രിപ്റ്റ് ശരിക്കും അത്ര വലിയ കാര്യമല്ല.

"ഹലോ വേൾഡ്" സ്ക്രിപ്റ്റിൽ നമുക്ക് എങ്ങനെ മെച്ചപ്പെടുത്താം?

ഇത് പ്രവർത്തിക്കുന്ന ഒരു വ്യക്തിയെ അഭിവാദ്യം ചെയ്യുന്ന ഒരു സ്ക്രിപ്റ്റിനെക്കുറിച്ചാണോ? "ഹലോ വേൾഡ്" എന്ന് പറയുന്നതിന് പകരം "ഹലോ ഗാരി", "ഹലോ ടൈം" അല്ലെങ്കിൽ "ഹലോ ഡോളി" എന്നു പറയും.

ഇൻപുട്ട് പാരാമീറ്ററുകൾ സ്വീകരിക്കാനുള്ള കഴിവില്ലാതെ നമുക്ക് മൂന്ന് സ്ക്രിപ്റ്റുകൾ "hellogot.sh", "hellotim.sh", "hellodolly.sh" എന്നിവ എഴുതേണ്ടതുണ്ട്.

ഇൻപുട്ട് പാരാമീറ്ററുകൾ വായിക്കാൻ ഞങ്ങളുടെ സ്ക്രിപ്റ്റ് അനുവദിച്ചുകൊണ്ട് നമുക്ക് ആരെയും വന്ദിക്കുന്നതിനായി ഒരു സ്ക്രിപ്റ്റ് ഉപയോഗിക്കാൻ കഴിയും.

ഇത് ചെയ്യുന്നതിന് ടെർമിനൽ വിൻഡോ തുറന്ന് (CTRL + ALT + T) നിങ്ങളുടെ സ്ക്രിപ്റ്റുകൾ ഫോൾഡറിലേക്ക് നാവിഗേറ്റ് ചെയ്ത് താഴെ പറയുന്നവ ടൈപ്പ് ചെയ്യുക: ( cd command )

സിഡി സ്ക്രിപ്റ്റുകൾ

താഴെ കൊടുത്തിരിയ്ക്കുന്നതിലൂടെ greetme.sh എന്ന പേരിൽ ഒരു പുതിയ സ്ക്രിപ്റ്റ് ഉണ്ടാക്കുക: ( ടച്ച് കമാൻഡിനെക്കുറിച്ച് )

ടച്ച് greetme.sh

നിങ്ങളുടെ പ്രിയപ്പെട്ട എഡിറ്ററിൽ താഴെപ്പറയുന്നവ ടൈപ്പ് ചെയ്തുകൊണ്ട് സ്ക്രിപ്റ്റ് തുറക്കുക: ( നാനോ കമാൻഡ് )

നാനോ greetme.sh

നാനോയ്ക്കുള്ളിൽ ഇനിപ്പറയുന്ന ടെക്സ്റ്റ് നൽകുക:

#! / bin / bash echo "ഹലോ $ @"

ഫയൽ അടയ്ക്കുന്നതിന് CTRL, O അമർത്തുക, തുടർന്ന് ഫയൽ അടയ്ക്കുന്നതിന് CTRL, X എന്നിവ അമർത്തുക.

സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുന്നതിന് കമാൻഡ് ലൈനിലേക്ക് നിങ്ങളുടെ പേര് പകരം വയ്ക്കുക.

ഷാ

ഞാൻ എന്റെ പേരിൽ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിച്ചാൽ അത് "ഹലോ ഗാരി" എന്ന പദങ്ങൾ പ്രദർശിപ്പിക്കുന്നു.

ആദ്യത്തെ വരിയിൽ #! / Bin / bash line ഉണ്ട്, ഇത് ഫയൽ ബാഷ് ലിപി ആയി തിരിച്ചറിയാൻ ഉപയോഗിക്കുന്നു.

രണ്ടാമത്തെ വരി echo സ്റ്റേറ്റ്മെന്റ് ഉപയോഗിക്കുന്നത് hello എന്ന വാക്കിൽ പ്രതിഫലിപ്പിക്കുന്നു തുടർന്ന് വിചിത്രമായ $ @ നൊട്ടേഷൻ. ( echo കമാന്ഡിനെപ്പറ്റിയുള്ള )

സ്ക്രിപ്റ്റ് നാമത്തോടൊപ്പം നൽകിയിട്ടുള്ള എല്ലാ പാരാമീറ്ററുകളും പ്രദർശിപ്പിക്കുന്നതിന് $ @ വികസിപ്പിക്കുന്നു. നിങ്ങൾ "sh greetme.sh ടൈം" എന്ന് ടൈപ്പ് ചെയ്താൽ "ഹലോ ടൈം" എന്ന വാക്കുകൾ പ്രദർശിപ്പിക്കപ്പെടും. നിങ്ങൾ "greetme.sh tim smith" എന്ന് ടൈപ്പ് ചെയ്താൽ "hello tim smith" എന്ന് കാണാം.

ഇത് ആദ്യനാമം ഉപയോഗിച്ച് ഹലോ പറയാൻ greetme.sh സ്ക്രിപ്റ്റിന് നല്ലതാണ്. ആരും എന്നെ കാണുമ്പോൾ "ഹലോ ഗാരി നൗൽ" എന്ന് പറഞ്ഞാൽ, അവർ "ഹലോ ഗാരി" എന്ന് പറയും.

ആദ്യ സ്ലൈഡർ ഉപയോഗിക്കുന്നത് സ്ക്രിപ്റ്റിനെ മാറ്റാൻ അനുവദിക്കുക. താഴെ കൊടുത്തിരിക്കുന്നതിലൂടെ നാനോയിലെ greetme.sh ലിപി തുറക്കുക:

നാനോ greetme.sh

സ്ക്രിപ്റ്റ് മാറ്റിയതിന് ശേഷം അത് ഇങ്ങനെ വായിക്കുന്നു:

#! / bin / bash echo "$ 1 ഹലോ"

CTRL, O എന്നിവ അമർത്തി സ്ക്രിപ്റ്റ് സംരക്ഷിക്കുക തുടർന്ന് CTRL, X അമർത്തുക.

ചുവടെ കാണിച്ചിരിക്കുന്നതുപോലെ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക (എന്റെ പേര് മാറ്റിസ്ഥാപിക്കുക):

ഷാ ഗേറ്റ്

നിങ്ങൾ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോൾ അത് "ഹലോ ഗാരി" (അല്ലെങ്കിൽ "ഹലോ", നിങ്ങളുടെ പേര് എന്തായാലും പറയും.

$ ചിഹ്നത്തിനു ശേഷം 1 അടിസ്ഥാനത്തിൽ echo command ൽ പറയുന്നു, ആദ്യത്തെ പാരാമീറ്റർ ഉപയോഗിക്കുക. നിങ്ങൾ $ 1 ഉപയോഗിച്ച് $ 1 മാറ്റിയിട്ടുണ്ടെങ്കിൽ, അത് "hello newell" (അല്ലെങ്കിൽ നിങ്ങളുടെ കുടുംബത്തെക്കുറിച്ചെല്ലാം) പ്രദർശിപ്പിക്കും.

നിങ്ങൾ $ 2 ഉപയോഗിച്ച് $ 2 മാറ്റി പകരം 2 പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് സ്ക്രിപ്റ്റ് പ്രവർത്തിച്ചാൽ, ഔട്ട്പുട്ട് "ഹലോ" ആയിരിക്കാം.

യഥാർത്ഥത്തിൽ നൽകിയിട്ടുള്ള പാരാമീറ്ററുകളുടെ എണ്ണം പ്രദർശിപ്പിച്ച് കൈകാര്യം ചെയ്യാനും പിന്നീട് ട്യൂട്ടോറിയലുകളിൽ കൈകാര്യം ചെയ്യാനും സാധിക്കും. സാധുതയുള്ള ആവശ്യകതകൾക്കായി പാരാമീറ്റർ എണ്ണൽ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഞാൻ കാണിക്കുന്നു.

നൽകിയ പരാമീറ്ററുകളുടെ എണ്ണം കാണിയ്ക്കുന്നതിനായി, greetme.sh സ്ക്രിപ്റ്റ് (നാനോ greetme.sh) തുറന്നു്, തിരുത്തി തിരുത്തുവാനുള്ളതു്:

#! / bin / bash echo "താങ്കള് $ # പേരുകള് നല്കി" echo "ഹലോ $ @"

നാനോയിൽ നിന്ന് പുറത്തുകടക്കാൻ സ്ക്രിപ്റ്റ്, CTRL, X എന്നിവ സംരക്ഷിക്കാൻ CTRL ഉം O ഉം അമർത്തുക.

രണ്ടാമത്തെ വരിയിലെ $ # നൽകിയിരിക്കുന്ന പരാമീറ്ററുകളുടെ എണ്ണം കാണിക്കുന്നു.

ഇതുവരെയൊക്കെ നോവലാണ്, പക്ഷേ വളരെ പ്രയോജനകരമല്ല. "ഹലോ" എന്ന ലളിതമായി പ്രദർശിപ്പിക്കുന്ന ഒരു സ്ക്രിപ്റ്റ് നമുക്ക് ആവശ്യമാണോ?

ഉപയോക്താവിന് വെർബോസ്, അർഥവത്തായ ഔട്ട്പുട്ട് നൽകുക എന്നതാണു് echo സ്റ്റേറ്റ്മെന്റിനുള്ള യഥാർഥ ഉപയോഗം. ചില ഗുരുതരമായ എണ്ണം ക്രഞ്ചിനും ഫയലും / ഫോൾഡർ കൃത്രിമവും ഉൾപ്പെടുന്ന സങ്കീർണ്ണമായ എന്തെങ്കിലും ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടെങ്കിൽ, ഓരോ വഴിയും എന്താണ് നടക്കുന്നത് എന്ന് ഉപയോക്താവിന് ദൃശ്യമാകുന്നത് പ്രയോജനകരമാകും.

നേരെമറിച്ച്, ഇൻപുട്ട് പരാമീറ്ററുകൾ നിങ്ങളുടെ സ്ക്രിപ്റ്റ് ഇന്ററാക്ടീവ് ഉണ്ടാക്കുന്നു. ഇൻപുട്ട് പരാമീറ്ററുകൾ ഇല്ലാതെ നിങ്ങൾക്ക് സമാനമായ സംഗതികളായി ഡസൻ കണക്കിന് സ്ക്രിപ്റ്റുകൾ ആവശ്യമായി വരും, എന്നാൽ വ്യത്യസ്ത നാമങ്ങളിൽ.

മനസ്സിനെ മനസിലാക്കിയാൽ, മറ്റ് ചില ഉപയോഗപ്രദമായ ഇൻപുട്ട് പരാമീറ്ററുകൾ അത് അറിയാൻ വളരെ നല്ല ഒരു ആശയമാണെന്നതിനാൽ അവ ഒറ്റ കോഡ് സ്നിപ്പെറ്റിൽ ഉൾപ്പെടുത്തും.

നിങ്ങളുടെ greetme.sh സ്ക്രിപ്റ്റ് തുറന്ന് അത് ഭേദഗതി ചെയ്യുക:

#! / bin / bash echo "ഫയല്നാമം: $ 0" എക്കോ "പ്രക്രിയ ഐഡി: $$" echo "---------------------------- --- "എക്കോ" നിങ്ങൾ $ # പേരുകൾ നൽകി "echo" ഹലോ $ @ "

ഫയലും Ctrl, X ഉം പുറത്തുകടക്കാൻ CTRL ഉം O ഉം അമർത്തുക.

ഇപ്പോൾ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക (നിങ്ങളുടെ പേര് മാറ്റിസ്ഥാപിക്കുക).

ഷാ

ഈ സമയം സ്ക്രിപ്റ്റ് പ്രദർശിപ്പിക്കുന്നു:

ഫയൽനാമം: greetme.sh പ്രോസസ് ഐഡി: 18595 ------------------------------ നിങ്ങൾ രണ്ടു പേരുകൾ നൽകി ഹലോ ഗാരി newell

സ്ക്രിപ്റ്റിന്റെ ആദ്യ വരിയിൽ $ 0 നിങ്ങൾ പ്രവർത്തിപ്പിക്കുന്ന സ്ക്രിപ്റ്റിന്റെ പേരു് കാണിക്കുന്നു. ഇത് ഡോളർ പൂജ്യമല്ല, ഡോളറോ o അല്ല.

രണ്ടാം വരിയിലെ $$ നിങ്ങൾ പ്രവർത്തിപ്പിക്കുന്ന സ്ക്രിപ്റ്റിന്റെ പ്രവർത്തന ഐഡി കാണിക്കുന്നു. ഇത് എന്തുകൊണ്ട് ഉപയോഗപ്രദമാണ്? നിങ്ങൾ മുൻപിലൊരു സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, സിആർആർഎൽ, സി എന്നിവ അമർത്തിയാൽ നിങ്ങൾ ഇത് റദ്ദാക്കാം. നിങ്ങൾ പശ്ചാത്തലത്തിൽ സ്ക്രിപ്റ്റ് നടത്തിയിട്ടുണ്ടെങ്കിൽ അത് വീണ്ടും ലോപ്പുചെയ്യുകയും നിങ്ങളുടെ കമ്പ്യൂട്ടറിന് കേടുപാടുകൾ സൃഷ്ടിക്കാൻ തുടങ്ങുകയും ചെയ്തേക്കാം. കൊല്ലാൻ.

പശ്ചാത്തലത്തിൽ പ്രവർത്തിക്കുന്ന സ്ക്രിപ്റ്റ് ഇല്ലാതാക്കാൻ നിങ്ങൾക്ക് സ്ക്രിപ്റ്റിന്റെ പ്രോസസ് ഐഡി ആവശ്യമാണ്. സ്ക്രിപ്റ്റ് അതിന്റെ ഔട്ട്പുട്ടിന്റെ ഭാഗമായി പ്രക്രിയ ഐഡി നൽകിയാൽ അത് ശരിയായിരിക്കില്ല. ( ps, കമാൻഡുകളെപ്പറ്റി കൊല്ലുക )

ഞാൻ ഈ വിഷയം പൂർത്തിയാക്കുന്നതിനു മുമ്പ് അവസാനമായി ഉത്പാദനം നടക്കുന്നതിനെക്കുറിച്ച് ചർച്ച ചെയ്യാൻ ആഗ്രഹിച്ചു. സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിച്ച ഓരോ തവണയും സ്ക്രീനിൽ കാണിക്കുന്നു.

സ്ക്രിപ്റ്റ് ഔട്ട്പുട്ടിന് ഒരു ഔട്ട്പുട്ട് ഫയലിലേക്ക് എഴുതുന്നത് വളരെ സാധാരണമാണ്. ഇതിനായി നിങ്ങളുടെ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക:

sh.> ഗാരറി> greetme.log

മുകളിലുള്ള ആജ്ഞയുടെ ചിഹ്നം greetme.log എന്ന പേരിൽ ഒരു ഫയൽ "ഹലോ ഗാരി" നൽകുന്നു.

നിങ്ങൾ ചിഹ്നമായി സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോൾ ഓരോ തവണയും ഇത് ഔട്ട്പുട്ട് ഫയലിന്റെ ഉള്ളടക്കത്തെ പുനരാലേഖനം ചെയ്യുന്നു. നിങ്ങൾ ഫയലിലേക്ക് കൂട്ടിച്ചേർക്കാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ>> കൂടെ മാറ്റി >> വയ്ക്കുക.

സംഗ്രഹം

നിങ്ങൾ ഇപ്പോൾ ടെക്സ്റ്റിലേക്ക് സ്ക്രീനിൽ എഴുതി ഇൻപുട്ട് പാരാമീറ്ററുകൾ സ്വീകരിക്കുന്നതിന് കഴിയും.