Kuidas määrata muutujale Linuxi käsu väljund


Kui käivitate käsu, loob see mingisuguse väljundi: oletatakse, et kas programmi tulemus peab tooma, või programmi täitmise üksikasjade oleku/veateateid. Mõnikord võiksite käsu väljundi salvestada muutujas, mida kasutatakse hilisemas toimingus.

Selles postituses vaatame üle erinevad viisid, kuidas omistada shellikäsu väljund muutujale, mis on spetsiaalselt kasulik shellide skriptimiseks.

Käsu väljundi muutujana salvestamiseks võite kasutada shellikäskude asendamise funktsiooni järgmistes vormides:

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

Allpool on toodud mõned näited käsu asendamise kasutamisest.

Selles esimeses näites salvestame käsu who (mis näitab, kes on süsteemi sisse logitud) väärtuse muutujas CURRENT_USERS kasutaja:

$ CURRENT_USERS=$(who)

Seejärel saame kasutada muutujat kuvatavas lauses käsu echo abil nii:

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

Ülalolevas käsus: lipp -e tähendab tõlgendama kõiki kasutatavaid põgenemisjärjestusi (näiteks \n uue rea jaoks). Nii aja kui ka mälu raiskamise vältimiseks täitke käsu echo käsk lihtsalt järgmiselt:

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

Järgmisena, et näidata mõistet teise vormi abil; saame praeguses töökataloogis olevate failide koguarvu salvestada muutujasse nimega FILES ja kajastada seda hiljem järgmiselt:

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

See on kõik, selles artiklis me selgitasime meetodeid, kuidas omistada shellikäsu väljund muutujale. Sellele postitusele saate oma mõtted lisada alloleva tagasiside jaotise kaudu.