Wyszukiwanie w witrynie

Jak przypisać dane wyjściowe polecenia systemu Linux do zmiennej


Kiedy uruchamiasz polecenie, generuje ono pewien rodzaj wyniku: albo wynik działania programu, albo komunikaty o stanie/błędach dotyczące szczegółów wykonania programu. Czasami możesz chcieć zapisać wynik polecenia w zmiennej, aby użyć go w późniejszej operacji.

W tym poście omówimy różne sposoby przypisywania danych wyjściowych polecenia powłoki do zmiennej, co jest szczególnie przydatne w przypadku skryptów powłoki.

Aby zapisać wynik polecenia w zmiennej, możesz skorzystać z funkcji podstawienia poleceń powłoki w poniższych formularzach:

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

Poniżej znajduje się kilka przykładów wykorzystania podstawienia poleceń.

W tym pierwszym przykładzie będziemy przechowywać wartość komendy who (która pokazuje, kto jest zalogowany w systemie) w zmiennej użytkownika CURRENT_USERS:

CURRENT_USERS=$(who)

Następnie możemy użyć zmiennej w zdaniu wyświetlonym za pomocą polecenia echo w następujący sposób:

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

W powyższym poleceniu: flaga -e oznacza interpretację użytych sekwencji ucieczki (takich jak \n dla nowej linii). Aby uniknąć marnowania czasu i pamięci, po prostu wykonaj podstawienie polecenia w poleceniu echo w następujący sposób:

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

Następnie zademonstrowanie koncepcji za pomocą drugiej formy; możemy zapisać całkowitą liczbę plików w bieżącym katalogu roboczym w zmiennej o nazwie FILES i echo ją później w następujący sposób:

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

To na razie tyle, w tym artykule wyjaśniliśmy metody przypisywania wyniku polecenia powłoki do zmiennej. Możesz dodać swoje przemyślenia do tego posta, korzystając z sekcji opinii poniżej.