Hvordan tilordne utdata fra en Linux-kommando til en variabel
Når du kjører en kommando, produserer den en slags utdata: enten er resultatet av et program antatt å produsere eller status-/feilmeldinger om programutførelsesdetaljene. Noen ganger kan det være lurt å lagre utdataene fra en kommando i en variabel som skal brukes i en senere operasjon.
I dette innlegget vil vi se på de forskjellige måtene å tilordne utdata fra en shell-kommando til en variabel, spesielt nyttig for shell-skripting.
For å lagre utdataene fra en kommando i en variabel, kan du bruke funksjonen for substitusjon av shell-kommandoer i skjemaene nedenfor:
variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)
OR
variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'
Nedenfor er noen eksempler på bruk av kommandoerstatning.
I dette første eksemplet vil vi lagre verdien av who
(som viser hvem som er logget på systemet) kommandoen i variabelen CURRENT_USERS
bruker:
CURRENT_USERS=$(who)
Deretter kan vi bruke variabelen i en setning som vises ved å bruke ekkokommandoen slik:
echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"
I kommandoen ovenfor: flagget -e
betyr å tolke eventuelle escape-sekvenser (som \n
for nylinje) som brukes. For å unngå å kaste bort tid og minne, utfør ganske enkelt kommandoerstatningen i ekkokommandoen som følger:
echo -e "The following users are logged on the system:\n\n $(who)"
Deretter, for å demonstrere konseptet ved å bruke den andre formen; vi kan lagre det totale antallet filer i gjeldende arbeidskatalog i en variabel kalt FILES
og echo det senere som følger:
FILES=`sudo find . -type f -print | wc -l`
echo "There are $FILES in the current working directory."
Det er det for nå, i denne artikkelen forklarte vi metodene for å tilordne utdataene fra en shell-kommando til en variabel. Du kan legge til tankene dine til dette innlegget via tilbakemeldingsdelen nedenfor.