Kako dodijeliti izlaz Linux naredbe varijabli


Kada pokrenete naredbu, ona proizvodi neku vrstu izlaza: ili rezultat programa treba da proizvede ili poruke o statusu/grešci detalja o izvršavanju programa. Ponekad ćete možda htjeti pohraniti izlaz naredbe u varijablu koja će se koristiti u kasnijoj operaciji.

U ovom postu ćemo pregledati različite načine dodjeljivanja izlaza komande ljuske promjenljivoj, posebno korisno za svrhu skriptiranja ljuske.

Da biste pohranili izlaz naredbe u varijablu, možete koristiti funkciju zamjene naredbi ljuske u obrascima u nastavku:

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

Ispod je nekoliko primjera korištenja zamjene naredbi.

U ovom prvom primjeru, pohranit ćemo vrijednost naredbe who (koja pokazuje ko je prijavljen na sistem) u varijablu CURRENT_USERS korisnika:

CURRENT_USERS=$(who)

Tada možemo koristiti varijablu u rečenici prikazanoj pomoću naredbe echo na sljedeći način:

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

U gornjoj naredbi: zastavica -e znači interpretirati bilo koju escape sekvencu (kao što je \n za novi red) koja se koristi. Da biste izbjegli gubljenje vremena i memorije, jednostavno izvršite zamjenu naredbe unutar echo komande na sljedeći način:

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

Zatim, demonstrirati koncept koristeći drugi obrazac; možemo pohraniti ukupan broj datoteka u trenutnom radnom direktoriju u varijablu zvanu FILES i echo kasnije na sljedeći način:

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

To je to za sada, u ovom članku smo objasnili metode dodjeljivanja izlaza naredbe ljuske varijabli. Možete dodati svoje mišljenje ovom postu putem odjeljka za povratne informacije u nastavku.