IF- പ്രസ്താവനകൾ എങ്ങിനെ ഒരു Bash- Script ൽ എഴുതാം

കമാൻഡുകൾ, സിന്റാക്സ്, ഉദാഹരണങ്ങൾ

ഒരു if-statement വഴി, ഒരു ഉപാധിയനുസരിച്ചുള്ള സ്റ്റേറ്റ്മെന്റ് ആണ്, നിശ്ചിത വ്യവസ്ഥകൾ അനുസരിച്ച് നിങ്ങൾക്ക് വ്യത്യസ്ത പ്രവൃത്തികൾ ചെയ്യാവുന്നതാണ്. തീരുമാനങ്ങൾ എടുക്കാനുള്ള കഴിവ് സിസ്റ്റത്തെ ഫലപ്രദമായി നൽകുന്നു.

ഒരു if-statement ന്റെ ഏറ്റവും ലളിതമായ ഫോം ഉദാഹരണം:

count = 5 എങ്കിൽ [$ count == 5] അപ്പോൾ echo "$ count" fi

ഈ ഉദാഹരണത്തിൽ, if-statement ന്റെ ഭാഗമായി ഉപയോഗിക്കുന്ന ഒരു വ്യവസ്ഥ വ്യക്തമാക്കാൻ വേരിയബിൾ "കണ്ട്" ഉപയോഗിക്കും. If-statement നടപ്പിലാക്കുന്നതിന് മുമ്പായി, വേരിയബിൾ "കണ്ട്" മൂല്യം "5" നൽകും. "Count" എന്നതിന്റെ മൂല്യം "5" ആണാണോയെന്ന് if-statement തുടർന്ന് പരിശോധിക്കുന്നു. അങ്ങനെയാണെങ്കിൽ കീബോർഡിനും "fi" യ്ക്കും കീവേഡുകൾക്കിടയിൽ എക്സിക്യൂട്ട് ചെയ്യുന്നു. അല്ലെങ്കിൽ, if-statement നടത്തിയ ഏതെങ്കിലും പ്രസ്താവനകൾ നടക്കുന്നു. "Fi" എന്ന കീവേഡ് പിന്നോട്ട് "if" ആണ്. സങ്കീർണ്ണമായ പദപ്രയോഗത്തിന്റെ അവസാനത്തെ അടയാളപ്പെടുത്തുന്നതിന് ഈ കൺവെൻഷൻ ഉപയോഗിക്കുന്നത് ബാഷ് സ്ക്രിപ്റ്റിംഗ് ഭാഷയാണ്, അത്തരം ഒരു പ്രസ്താവന അല്ലെങ്കിൽ കേസ് പ്രസ്താവനകൾ.

"Echo" സ്റ്റേറ്റ്മെന്റ് അതിന്റെ വാദം പ്രിന്റ് ചെയ്യുന്നു, ഈ കേസിൽ, വേരിയബിൾ "count" യുടെ മൂല്യം, ടെർമിനൽ വിൻഡോയിലേക്ക്. If-statement ന്റെ കീവേഡുകൾ തമ്മിലുള്ള കോഡ് ഇൻഡന്റേഷൻ വായനാക്ഷമത മെച്ചപ്പെടുത്തുന്നു പക്ഷേ ആവശ്യമില്ല.

ഒരു നിബന്ധന ശരിയായില്ലെങ്കിൽ മാത്രം കോഡിന്റെ ഒരു ഭാഗം പ്രവർത്തിപ്പിക്കേണ്ട സാഹചര്യമുണ്ടെങ്കിൽ, ഈ ഉദാഹരണത്തിൽ എന്ന പോലെ ഒരു if-statement ൽ "else" കീവേഡ് നിങ്ങൾക്ക് ഉപയോഗിക്കാം:

count = 5 എങ്കിൽ [$ count == 5] എങ്കിൽ echo "$ count" else echo "count is not 5" fi

"$ Count == 5" എന്ന ശീർഷകം ശരിയാണെങ്കിൽ, സിസ്റ്റം വേരിയബിളിന്റെ "count" ന്റെ മൂല്യം പ്രിന്റ് ചെയ്യുന്നു, അല്ലാത്തപക്ഷം സ്ട്രിംഗ് "COUNT എന്നത് 5 അല്ല" എന്ന് പ്രിന്റ് ചെയ്യുന്നു.

ഒന്നിലധികം സാഹചര്യങ്ങൾക്കിടയിൽ വ്യത്യാസമുണ്ടെങ്കിൽ, ഈ ഉദാഹരണത്തിൽ എന്നതുപോലെ "വേറൊരു" ൽ നിന്നുമുള്ള കീവേഡ് "എലിഫ്" നിങ്ങൾക്ക് ഉപയോഗിക്കാം:

എങ്കിൽ [$ count == 5] എങ്കിൽ echo "count is five" elif [$ count == 6] അപ്പോൾ echo "count six" എന്നും echo "none of the above"

"എണ്ണ" എന്നത് "5" ആണെങ്കിൽ, സിസ്റ്റം പ്രിന്റ് ചെയ്യുന്നു "കൗണ്ട് അഞ്ചാണ്". "എണ്ണ" "5" എന്നാൽ "6" അല്ല എങ്കിൽ, സിസ്റ്റം പ്രിന്റ് "എണ്ണം ആറ് ആണ്". ഇത് "5" അല്ലെങ്കിൽ "6" എന്നാണെങ്കിൽ, "മുകളിൽ കൊടുത്തിരിക്കുന്നവ ഒന്നുമില്ല" എന്നു സിസ്റ്റം പ്രിന്റ് ചെയ്യുന്നു.

നിങ്ങൾ ഊഹിച്ചതുപോലെ, നിങ്ങൾക്ക് എത്രയോ "എലിഫ്" വിഭാഗങ്ങൾ ഉണ്ടാകും. ഒന്നിലധികം "എലിഫ്" അവസ്ഥകളുള്ള ഒരു ഉദാഹരണം:

അപ്പോൾ, "count is five" elif [$ count == 6] അപ്പോൾ echo "count is six" elif [$ count == 7] അതിനു ശേഷം "count count is seven" elif [$ count = = 8] അപ്പോൾ എക "എട്ട് എട്ട്" എലിഫ് [$ count == 9] അപ്പോൾ echo "ഒൻപത് ഒൻപത് ആണ്" എന്നും echo "none of the above"

ഒന്നിലധികം സാഹചര്യങ്ങളോടെ അത്തരത്തിലുള്ള പ്രസ്താവനകൾ എഴുതുവാൻ കഴിയുന്ന രീതിയിലുള്ള രീതിയാണിത്. ഒന്നിലധികം "എലിഫ്" വിഭാഗങ്ങളുള്ള if-statement പോലെയാണ് ഇത് പ്രവർത്തിക്കുന്നത്. ഉദാഹരണത്തിന്, മുകളിൽ പറഞ്ഞിരിക്കുന്ന കോഡ് "കേസ്" സ്റ്റേറ്റ്മെന്റിൽ താഴെ രേഖപ്പെടുത്തിയിരിക്കുന്നു:

കേസിൽ "$ count" ൽ 5) echo "count five" ;; 6. echo "count is six"; 7) ഏകോ "എണ്ണം ഏഴാണ്"; 8) എക്കോ "എട്ട് എട്ട്" ;; 9) എക്കോ "എണ്ണം ഒൻപതു" ;; *) എക്കോ "മുകളിൽ പറഞ്ഞിരിക്കുന്നവ ഒന്നുമല്ല" esac

ഈ ഉദാഹരണത്തിൽ പറഞ്ഞാൽ -ഉപയോക്താക്കൾക്ക് അല്ലെങ്കിൽ ലൂപുകൾക്കുള്ളിൽ പലപ്പോഴും ഉപയോഗിക്കാറുണ്ട്.

count = 1 done = 0 while [$ count -le 9] ഉറങ്ങുക 1 ((count ++)) [$ count == 5] എങ്കിൽ "fi echo" $ count "പൂർത്തിയായി echo പൂർത്തിയായി

പ്രസ്താവനകളാണെങ്കിൽ നിങ്ങൾക്ക് കൂട്ടിചേർക്കാം. പ്രസ്താവനയുടെ ഫോം ആണ് ഏറ്റവും ലളിതമായത്: എങ്കിൽ ... പിന്നെ ... മറ്റെന്തെങ്കിലും ... എങ്കിൽ ... പിന്നെ ... fi ... fi. എന്നിരുന്നാലും, if-statement അനിയന്ത്രിതമായ സങ്കീർണ്ണതകളിലേക്ക് കൂട്ടിയിണക്കാൻ കഴിയും.

എങ്ങനെയാണ് ഒരു ബാഷ് സ്ക്രിപ്റ്റിനായി ആർഗ്യുമെന്റുകൾ അയയ്ക്കുന്നത് എന്നും കാണുക, കമാൻഡ് ലൈനിൽ നിന്നും പാറ്റേൺ ചെയ്യേണ്ട പരാമീറ്ററുകൾ എങ്ങനെ ഉപയോഗിക്കാം എന്ന് നിർദ്ദേശിക്കുന്നു.

ബാഷ് ഷെൽ മറ്റ് പ്രോഗ്രാമിംഗ് നിർമാണങ്ങൾ നൽകുന്നുണ്ട്, ഉദാഹരണത്തിനു് വേണ്ടി , ലൂപുകൾ , ലൂപ്പ്സ് , ലൂട്ടുകൾ , ഗണിത എക്സ്പ്രഷനുകൾ .