ഒരു ലിനക്സ് കമാൻഡിന്റെ ഔട്ട്പുട്ട് ഒരു വേരിയബിളിലേക്ക് എങ്ങനെ നൽകാം


നിങ്ങൾ ഒരു കമാൻഡ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, അത് ചില തരത്തിലുള്ള ഔട്ട്പുട്ട് ഉൽപ്പാദിപ്പിക്കുന്നു: ഒന്നുകിൽ ഒരു പ്രോഗ്രാമിന്റെ ഫലം പ്രോഗ്രാം എക്സിക്യൂഷൻ വിശദാംശങ്ങളുടെ സ്റ്റാറ്റസ്/പിശക് സന്ദേശങ്ങൾ നിർമ്മിക്കുമെന്ന് കരുതുക. ചിലപ്പോൾ, ഒരു കമാൻഡിന്റെ ഔട്ട്uപുട്ട് പിന്നീടുള്ള പ്രവർത്തനത്തിൽ ഉപയോഗിക്കുന്നതിന് ഒരു വേരിയബിളിൽ സംഭരിക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം.

ഈ പോസ്റ്റിൽ, ഷെൽ സ്uക്രിപ്റ്റിംഗ് ആവശ്യത്തിന് പ്രത്യേകമായി ഉപയോഗപ്രദമായ ഒരു ഷെൽ കമാൻഡിന്റെ ഔട്ട്uപുട്ട് ഒരു വേരിയബിളിലേക്ക് അസൈൻ ചെയ്യുന്നതിനുള്ള വ്യത്യസ്ത വഴികൾ ഞങ്ങൾ അവലോകനം ചെയ്യും.

ഒരു കമാൻഡിന്റെ ഔട്ട്പുട്ട് ഒരു വേരിയബിളിൽ സംഭരിക്കുന്നതിന്, ചുവടെയുള്ള ഫോമുകളിൽ നിങ്ങൾക്ക് ഷെൽ കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷൻ ഫീച്ചർ ഉപയോഗിക്കാം:

variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)
OR
variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'

കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷൻ ഉപയോഗിക്കുന്നതിനുള്ള ചില ഉദാഹരണങ്ങൾ ചുവടെയുണ്ട്.

ഈ ആദ്യ ഉദാഹരണത്തിൽ, CURRENT_USERS ഉപയോക്താവിന്റെ വേരിയബിളിൽ ഞങ്ങൾ who (സിസ്റ്റത്തിൽ ലോഗിൻ ചെയ്uതിരിക്കുന്നവരെ കാണിക്കുന്ന) കമാൻഡിന്റെ മൂല്യം സംഭരിക്കും:

$ CURRENT_USERS=$(who)

എക്കോ കമാൻഡ് ഉപയോഗിച്ച് പ്രദർശിപ്പിച്ചിരിക്കുന്ന ഒരു വാക്യത്തിൽ നമുക്ക് വേരിയബിൾ ഉപയോഗിക്കാം:

$ echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"

മുകളിലെ കമാൻഡിൽ: ഫ്ലാഗ് -e എന്നാൽ ഏതെങ്കിലും എസ്കേപ്പ് സീക്വൻസുകൾ വ്യാഖ്യാനിക്കുക ( പോലുള്ളവ) ന്യൂലൈനിനായി ) ഉപയോഗിച്ചു. സമയവും മെമ്മറിയും പാഴാക്കാതിരിക്കാൻ, എക്കോ കമാൻഡിനുള്ളിൽ കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷൻ ഇനിപ്പറയുന്ന രീതിയിൽ നടത്തുക:

$ echo -e "The following users are logged on the system:\n\n $(who)"

അടുത്തതായി, രണ്ടാമത്തെ ഫോം ഉപയോഗിച്ച് ആശയം പ്രകടിപ്പിക്കാൻ; നിലവിൽ പ്രവർത്തിക്കുന്ന ഡയറക്uടറിയിലെ മൊത്തം ഫയലുകളുടെ എണ്ണം FILES എന്ന വേരിയബിളിൽ സംഭരിക്കാനും പിന്നീട് ഇനിപ്പറയുന്ന രീതിയിൽ പ്രതിധ്വനിപ്പിക്കാനും കഴിയും:

$ FILES=`sudo find . -type f -print | wc -l`
$ echo "There are $FILES in the current working directory."

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