Když spustíte příkaz, vytvoří nějaký druh výstupu:buď má vytvořit výsledek programu, nebo stavová/chybová hlášení podrobností o provádění programu. Někdy můžete chtít uložit výstup příkazu do proměnné, která bude použita v pozdější operaci.
V tomto příspěvku se podíváme na různé způsoby přiřazení výstupu příkazu shellu k proměnné, což je zvláště užitečné pro účely skriptování shellu.
Chcete-li uložit výstup příkazu do proměnné, můžete použít funkci nahrazování příkazů shellu ve formulářích níže:
variable_name=$(command) variable_name=$(command [option ...] arg1 arg2 ...) OR variable_name='command' variable_name='command [option ...] arg1 arg2 ...'
Níže je uvedeno několik příkladů použití substituce příkazů.
V tomto prvním příkladu uložíme hodnotu who
(který ukazuje, kdo je přihlášen v systému) příkaz v proměnné CURRENT_USERS
uživatel:
$ CURRENT_USERS=$(who)
Pak můžeme proměnnou použít ve větě zobrazené pomocí příkazu echo takto:
$ echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"
V příkazu výše:příznak -e
znamená interpretovat jakékoli escape sekvence (jako například \n
pro nový řádek) použitý. Abyste se vyhnuli plýtvání časem a pamětí, jednoduše proveďte nahrazení příkazu v příkazu echo takto:
$ echo -e "The following users are logged on the system:\n\n $(who)"
Dále demonstrovat koncept pomocí druhého formuláře; celkový počet souborů v aktuálním pracovním adresáři můžeme uložit do proměnné FILES
a echo později takto:
$ FILES=`sudo find . -type f -print | wc -l` $ echo "There are $FILES in the current working directory."
To je prozatím vše, v tomto článku jsme vysvětlili metody přiřazení výstupu příkazu shellu k proměnné. Své myšlenky můžete k tomuto příspěvku přidat prostřednictvím sekce zpětné vazby níže.