Kuinka määrittää Linux-komennon tulos muuttujalle


Kun suoritat komennon, se tuottaa jonkinlaisen ulostulon: joko oletetaan, että ohjelman tulos tuottaa, tai ohjelman/suorituksen yksityiskohtien tila/virheilmoitukset. Joskus kannattaa ehkä tallentaa komennon lähtö muuttujaan, jota käytetään myöhemmässä toiminnossa.

Tässä viestissä tarkastelemme eri tapoja määrittää komentotulkkikomennon ulostulo muuttujalle, joka on erityisen hyödyllinen komentosarjan komentosarjatarkoituksiin.

Voit tallentaa komennon lähdön muuttujaan käyttämällä komentokomentojen vaihtoominaisuutta alla olevissa muodoissa:

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

Alla on muutama esimerkki komentojen korvaamisen käytöstä.

Tässä ensimmäisessä esimerkissä tallennetaan who -komennon (joka osoittaa järjestelmään kirjautuneen henkilön) arvon muuttujaan CURRENT_USERS user:

$ CURRENT_USERS=$(who)

Sitten voimme käyttää muuttujaa näytetyssä lauseessa echo-komennolla seuraavasti:

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

Yllä olevassa komennossa: lippu -e tarkoittaa kaikkien käytettyjen pakosarjojen tulkitsemista (kuten \n uudelle riville). Ajan ja muistin tuhlaamisen välttämiseksi suorita komennon korvaaminen kaikukomennossa seuraavasti:

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

Seuraavaksi esittelemään käsite toisella lomakkeella; Voimme tallentaa nykyisen työhakemiston tiedostojen kokonaismäärän muuttujaan nimeltä FILES ja toistaa sen myöhemmin seuraavasti:

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

Se on nyt, tässä artikkelissa selitimme tapoja, joilla komentotulkkikomennon lähtö määritetään muuttujalle. Voit lisätä ajatuksesi tähän viestiin alla olevan palauteosan kautta.