നിങ്ങളുടെ ഷെൽ സ്ക്രിപ്റ്റുകളിൽ ലൂപ്പ് വരെ എങ്ങനെ ഉപയോഗിക്കാം


മൂന്ന് ലൂപ്പ് നിർമ്മിതികൾക്കുള്ള ബാഷിൽ, അതേസമയം, വരെ. ഓരോ ലൂപ്പും വാക്യഘടനയിലും പ്രവർത്തനപരമായും വ്യത്യാസപ്പെട്ടിരിക്കുമ്പോൾ, ഒരു നിശ്ചിത പദപ്രയോഗം മൂല്യനിർണ്ണയം ചെയ്യുമ്പോൾ ഒരു ബ്ലോക്ക് കോഡിലൂടെ ആവർത്തിക്കുക എന്നതാണ് അവയുടെ ഉദ്ദേശ്യം.

എക്സ്പ്രഷൻ തെറ്റാണെന്ന് വിലയിരുത്തുന്നത് വരെ ഒരു ബ്ലോക്ക് കോഡ് എക്സിക്യൂട്ട് ചെയ്യാൻ ലൂപ്പ് ഉപയോഗിക്കും വരെ. ഇത് ഒരു സമയത്ത് ലൂപ്പിന് നേരെ വിപരീതമാണ്. എക്സ്പ്രഷൻ ശരിയായിരിക്കുമ്പോൾ ലൂപ്പ് കോഡ് ബ്ലോക്ക് പ്രവർത്തിപ്പിക്കുമ്പോൾ ലൂപ്പ് വിപരീതമായി പ്രവർത്തിക്കുന്നതുവരെ.

until [ expression ]
do
	code block
	...
	...
done

നമുക്ക് വാക്യഘടന തകർക്കാം.

  • ലൂപ്പ് ആരംഭിക്കാൻ, കീവേഡിന് ശേഷം സിംഗിൾ അല്ലെങ്കിൽ ഡബിൾ ബ്രേസിനുള്ളിൽ ഒരു എക്സ്പ്രഷൻ വരെ നിങ്ങൾ ഉപയോഗിക്കണം.
  • കോഡ് ബ്ലോക്ക് പ്രവർത്തിപ്പിക്കാൻ തുടങ്ങുന്നതുവരെ എക്uസ്uപ്രഷൻ തെറ്റാണെന്ന് വിലയിരുത്തണം.
  • ചെയ്യുന്നതിനും ചെയ്യുന്നതിനും ഇടയിലാണ് കോഡിന്റെ യഥാർത്ഥ ബ്ലോക്ക് സ്ഥാപിച്ചിരിക്കുന്നത്.

ഈ ചെറിയ ലേഖനത്തിൽ, ഇനിപ്പറയുന്ന ഉദാഹരണങ്ങൾ ഉപയോഗിച്ച് നിങ്ങളുടെ ഷെൽ സ്ക്രിപ്റ്റുകളിൽ ലൂപ്പ് വരെ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് നിങ്ങൾ പഠിക്കും.

സ്ക്രിപ്റ്റുകളിൽ ഒരു അനന്തമായ ലൂപ്പ് സൃഷ്ടിക്കുക

ഒരു പദപ്രയോഗമായി തെറ്റായ പ്രസ്താവന ഉപയോഗിച്ച് നിങ്ങൾക്ക് അനന്തമായ ലൂപ്പ് സൃഷ്ടിക്കാൻ കഴിയും. നിങ്ങൾ അനന്തമായ ലൂപ്പുകൾ അനുകരിക്കാൻ ശ്രമിക്കുമ്പോൾ, സ്uക്രിപ്റ്റ് ഇടയ്uക്കിടെ കടന്നുപോകുന്ന സ്ലീപ്പ് ഉപയോഗിക്കാൻ ശ്രമിക്കുക.

count=0
until false
do
	echo "Counter = $count"
	((count++))
	sleep 2
done

സിംഗിൾ ലൈൻ പ്രസ്താവനകൾ സൃഷ്ടിക്കുക

നിങ്ങൾക്ക് ഒറ്റ വരി ലൂപ്പ് പ്രസ്താവനകൾ സൃഷ്ടിക്കാൻ കഴിയും. ചുവടെയുള്ള കോഡ് നോക്കുക. ഇത് ഞങ്ങളുടെ ആദ്യത്തെ അനന്തമായ ലൂപ്പ് ഉദാഹരണത്തിന് സമാനമാണ്, പക്ഷേ ഒറ്റ വരിയിൽ. ഓരോ പ്രസ്താവനയും അവസാനിപ്പിക്കാൻ ഇവിടെ നിങ്ങൾ ഒരു അർദ്ധവിരാമം (;) ഉപയോഗിക്കണം.

# until false; do echo "Counter = $count"; ((count++)); sleep 2; done

ബ്രേക്ക് ഉപയോഗിച്ച് ഫ്ലോ മാറ്റുക, പ്രസ്താവന തുടരുക

നിങ്ങൾക്ക് ഒരു ബ്രേക്ക് ഉപയോഗിക്കാനും ലൂപ്പ് ഉള്ളിൽ തുടരാനും കഴിയും. ബ്രേക്ക് സ്റ്റേറ്റ്uമെന്റ് ലൂപ്പിൽ നിന്ന് പുറത്തുകടക്കുകയും കൺട്രോൾ അടുത്ത സ്റ്റേറ്റ്uമെന്റിന് കൈമാറുകയും ചെയ്യും, അതേസമയം തുടരുന്ന പ്രസ്താവന നിലവിലെ ആവർത്തനം ഒഴിവാക്കുകയും ലൂപ്പിലെ അടുത്ത ആവർത്തനം ആരംഭിക്കുകയും ചെയ്യും.

ഞാൻ അതേ അനന്തമായ ലൂപ്പ് ഉദാഹരണം ഉപയോഗിക്കുന്നു. ഇവിടെ എണ്ണം അഞ്ചിന് തുല്യമാകുമ്പോൾ തുടരുന്ന പ്രസ്താവന, ലൂപ്പ് ബോഡിയുടെ ബാക്കി ഭാഗം ഒഴിവാക്കി അടുത്ത ആവർത്തനത്തിലേക്ക് കുതിക്കും. അതുപോലെ, എണ്ണം 10-ന് തുല്യമോ അതിൽ കൂടുതലോ ആയിരിക്കുമ്പോൾ ലൂപ്പ് തകരുന്നു.

count=0
until false
do
  ((count++))
  if [[ $count -eq 5 ]]
  then
    continue
  elif [[ $count -ge 10 ]]
  then
    break
  fi
  echo "Counter = $count"
done

ഈ ലേഖനത്തിന് അത്രയേയുള്ളൂ. രസകരമായ മറ്റൊരു ലേഖനവുമായി ഞങ്ങൾ ഉടൻ തന്നെ നിങ്ങളെ പിടികൂടും 'അതുവരെ' തുടർന്ന് വായന തുടരുക, ഞങ്ങളെ പിന്തുണയ്ക്കുന്നത് തുടരുക.