Jak zapisać dane wyjściowe polecenia jako zmienną w Bash? Inteligencja danych PlatoBlockchain. Wyszukiwanie pionowe. AI.

Jak zapisać dane wyjściowe poleceń jako zmienne w Bash?

Wprowadzenie

W skryptach bash przypisywanie danych wyjściowych polecenia do zmiennych może być wygodne dzięki przechowywaniu danych wyjściowych poleceń i używaniu ich później.

W tym krótkim przewodniku przyjrzymy się, w jaki sposób można przechowywać dane wyjściowe polecenia jako zmienną w Bash.

Podstawy konfigurowania zmiennych

Zapisywanie danych wyjściowych polecenia jako zmiennej odbywa się poprzez zastępowanie poleceń. Podstawianie poleceń to opakowanie, które wykonuje polecenie w a środowisko podpowłokii zastępuje opakowane polecenie standardowym wyjściem środowiska, w którym polecenie zostało uruchomione. To wyjście może być następnie odwoływane później, jeśli jest podłączone do zmiennej odniesienia!

Zastępowanie poleceń można osiągnąć za pomocą kresek wstecznych lub znaku dolara z nawiasami:

`command`

$(command)

Trwa debata, czy `polecenie` (odwrotne zaznaczenie) lub $(polecenie) (znak dolara i nawiasy) powinny być stosowane jako „najlepsze praktyki”. $(command) działa dobrze w zagnieżdżaniu i poprawia czytelność w niektórych przypadkach, ale w poniższych przykładach można zastosować dowolną składnię.

To powiedziawszy – przypisanie wyjścia polecenia do zmiennej w Bash jest tak proste, jak:

VARIABLE=$(command)
echo "${VARIABLE}"

Bieganie ${variable} jest znany jako rozszerzenie parametrówi służy do oceny i pobrania wartości powiązanej ze zmienną odniesienia.

Przyjrzyjmy się teraz prostemu przykładowi ustawienia zmiennej dla polecenia zmiany koloru wyjściowego:

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

We fragmencie użyliśmy metody tput polecenie i przypisał zwróconą wartość tych poleceń, aby wydrukować kolorowy tekst. The setaf zmienia kolor pierwszego planu, a 3 (zielony) i 9 (pomarańczowy) to kody kolorów.

Teraz przejdziemy do innego przykładu, który zawiera wiele warunków do ustawiania zmiennych dla różnych poleceń:

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"

DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"

DATES=$(date)
echo -e "The script is being run on:n${DATES}n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"

LOCATION=$(ls 
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

W powyższym skrypcie plik whoami polecenie zwraca nazwę użytkownika bieżącego użytkownika. The uname -a zwraca informacje o systemie i date zwraca aktualną godzinę i datę.

Uwaga: Możemy łańcuchować przypisywanie zmiennych, dodając wiele poleceń w jednym zagnieżdżonym wywołaniu. The CREATE zmienna zawiera dane wyjściowe touch polecenie, które z kolei tworzy plik i ustawia nazwę pliku na dane wyjściowe programu date +"%d%m%Y dowództwo.

Zapoznaj się z naszym praktycznym, praktycznym przewodnikiem dotyczącym nauki Git, zawierającym najlepsze praktyki, standardy przyjęte w branży i dołączoną ściągawkę. Zatrzymaj polecenia Google Git, a właściwie uczyć się to!

Na koniec dodajemy A multiline koncepcję przypisania zmiennej polecenia przez dodanie ukośnika odwrotnego () między ls komenda -l flaga, aby wyświetlać tylko pliki tekstowe przy użyciu *.txt. Ukośnik odwrotny to znak ucieczki, który informuje powłokę, aby nie interpretowała następnego znaku.

W echo polecenie, dodaliśmy -e flaga, aby użyć znaku specjalnego, tj. n (nowy wiersz), aby wydrukować dane wyjściowe w nowym wierszu.

Po wykonaniu skryptu otrzymujemy następujący wynik:

$ ./variable.sh

Wnioski

W tym krótkim przewodniku przyjrzeliśmy się, jak ustawić wyjście polecenia na zmienną w Bash. Przyjrzeliśmy się różnicy między składniami for zastępowanie poleceń, zwracając uwagę na poprawę czytelności $(command) nad podstawieniem opartym na backtick. Następnie przyjrzeliśmy się kilku przykładom zarówno prostego przypisania, jak i łańcuchowego/zagnieżdżonego przypisania danych wyjściowych.

Znak czasu:

Więcej z Nadużycie stosu