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.