Zoeken op website

Hoe u de uitvoer van een Linux-opdracht aan een variabele kunt toewijzen


Wanneer u een opdracht uitvoert, produceert deze een soort uitvoer: het resultaat van een programma wordt verondersteld te produceren, of status-/foutmeldingen van de details van de programma-uitvoering. Soms wilt u misschien de uitvoer van een opdracht opslaan in een variabele die u in een latere bewerking kunt gebruiken.

In dit bericht zullen we de verschillende manieren bekijken om de uitvoer van een shell-commando aan een variabele toe te wijzen, wat vooral handig is voor shell-scriptingdoeleinden.

Om de uitvoer van een commando in een variabele op te slaan, kun je de shell-commandovervangingsfunctie in de onderstaande formulieren gebruiken:

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

Hieronder vindt u enkele voorbeelden van het gebruik van opdrachtvervanging.

In dit eerste voorbeeld slaan we de waarde van de opdracht who (die aangeeft wie op het systeem is ingelogd) op in de variabele CURRENT_USERS gebruiker:

CURRENT_USERS=$(who)

Vervolgens kunnen we de variabele als volgt gebruiken in een zin die wordt weergegeven met behulp van het echo-commando:

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

In het bovenstaande commando: de vlag -e betekent dat alle gebruikte escape-reeksen (zoals \n voor nieuwe regel) moeten worden geïnterpreteerd. Om tijd- en geheugenverspilling te voorkomen, voert u eenvoudigweg de opdrachtvervanging binnen de echo-opdracht als volgt uit:

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

Vervolgens het concept demonstreren met behulp van het tweede formulier; we kunnen het totale aantal bestanden in de huidige werkmap opslaan in een variabele met de naam FILES en deze later als volgt echo:

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

Dat was het voor nu, in dit artikel hebben we de methoden uitgelegd voor het toewijzen van de uitvoer van een shell-commando aan een variabele. U kunt uw mening aan dit bericht toevoegen via het feedbackgedeelte hieronder.