Kā piešķirt mainīgajam Linux komandas izvadi


Palaižot komandu, tā rada kaut kādu izvadi: tiek pieņemts, ka vai nu programmas rezultāts, vai arī programmas izpildes detaļu statusa/kļūdas ziņojumi. Dažreiz jūs varētu vēlēties saglabāt komandas izvadi mainīgajā, lai to izmantotu vēlāk.

Šajā ziņojumā mēs pārskatīsim dažādus veidus, kā piešķirt čaulas komandas izvadi mainīgajam, kas ir īpaši noderīgs čaulas skriptu izveides vajadzībām.

Lai saglabātu komandas izvadi mainīgajā, varat izmantot čaulas komandu aizstāšanas funkciju šādās formās:

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

Zemāk ir daži komandu aizstāšanas izmantošanas piemēri.

Šajā pirmajā piemērā mēs glabāsim komandas who vērtību (kas parāda, kas ir pieteicies sistēmā) mainīgajā CURRENT_USERS lietotājā:

$ CURRENT_USERS=$(who)

Tad mainīgo varam izmantot parādītajā teikumā, izmantojot komandu echo, piemēram:

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

Iepriekš norādītajā komandā: karodziņš -e nozīmē interpretēt visas aizbēgšanas secības (piemēram, newline). Lai nezaudētu laiku, kā arī atmiņu, vienkārši izpildiet komandas aizstāšanu echo komandā šādi:

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

Pēc tam, lai parādītu koncepciju, izmantojot otro formu; mēs varam saglabāt kopējo failu skaitu pašreizējā darba direktorijā mainīgajā ar nosaukumu FILES un vēlāk to atkārtot šādi:

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

Tas ir viss, šajā rakstā mēs izskaidrojām metodes, kā čaulas komandas izvadi piešķirt mainīgajam. Jūs varat pievienot savas domas šai ziņai, izmantojot tālāk sniegto atsauksmju sadaļu.