Polecenie echo wyświetla tekst w konsoli, wykorzystywane też do sprawdzania wartości zmiennych środowiskowych.
Jak działa polecenie echo w powłoce
echo służy do wypisywania argumentów w standardowym wyjściu, czyli zwykle w oknie terminala. W najprostszym użyciu polecenie echo Witaj wyświetla tekst Witaj, a następnie kończy wiersz znakiem nowej linii. Wszystko, co powłoka przekaże jako argumenty, jest zazwyczaj wypisywane w tej samej kolejności, z odstępami pomiędzy poszczególnymi argumentami. Polecenie nie otwiera osobnego programu w każdej sytuacji, ponieważ w wielu powłokach, między innymi w Bashu, Zsh i powłoce Windows, może być zrealizowane jako polecenie wbudowane.
W systemach zgodnych z Unixem istnieje także zewnętrzne narzędzie echo, opisane w standardzie POSIX. Różnica między poleceniem wbudowanym a programem uruchamianym z systemu plików może mieć znaczenie przy interpretacji opcji i znaków specjalnych. Konkretne zachowanie zależy od użytej powłoki oraz jej ustawień. Dlatego przy skryptach wymagających przewidywalnego formatowania często stosuje się printf, które ma bardziej jednoznaczne reguły obsługi formatu, znaków nowej linii i danych wejściowych.
Wyświetlanie zmiennych środowiskowych
Jednym z częstych zastosowań echo jest sprawdzanie wartości zmiennej. W Bashu zapis echo "$PATH" powoduje rozwinięcie zmiennej PATH przez powłokę i wyświetlenie jej zawartości. Ta zmienna przechowuje listę katalogów, w których powłoka szuka programów uruchamianych bez podania pełnej ścieżki. Podobnie można sprawdzić własną zmienną, na przykład po wykonaniu export TRYB=test użyć polecenia echo "$TRYB". Cudzysłów ma znaczenie, ponieważ zachowuje spacje, znaki tabulacji i inne elementy wartości jako część jednego argumentu.
W wierszu poleceń systemu Windows składnia odczytu zmiennej zależy od użytej powłoki. W klasycznym cmd.exe stosuje się zapis echo %PATH%, natomiast w PowerShellu wartość zmiennej środowiskowej odczytuje się jako echo $env:PATH. W PowerShellu echo jest aliasem polecenia Write-Output, więc jego działanie wpisuje się w mechanizm potoków obiektowych tej powłoki. Sam napis wyświetlony na ekranie może wyglądać podobnie, ale sposób przekazywania danych dalej w potoku jest inny niż w typowym potoku tekstowym systemów Unix.
Rozwijanie argumentów, cudzysłowy i przekierowanie
echo wyświetla wynik po wcześniejszym przetworzeniu wiersza przez powłokę. Oznacza to, że symbole takie jak $HOME w Bashu, gwiazdka używana do dopasowania nazw plików albo wyrażenie polecenia w konstrukcji $(pwd) mogą zostać rozwinięte zanim echo otrzyma argumenty. Przykład echo * może wypisać nazwy elementów bieżącego katalogu, a nie dosłowną gwiazdkę. Aby wyświetlić znaki bez takiego rozwinięcia, należy użyć odpowiedniego cytowania, na przykład echo '*'.
Wynik można przekazać do innego polecenia operatorem potoku albo zapisać do pliku za pomocą przekierowania. Konstrukcja echo "raport" > wynik.txt tworzy plik lub zastępuje jego dotychczasową zawartość, natomiast >> dopisuje tekst na końcu istniejącego pliku. Polecenie echo "status" | grep status przekazuje tekst do kolejnego programu przez standardowe wejście. Przy analizie skryptu trzeba sprawdzić, czy dane zawierają znaki specjalne, cudzysłowy lub znaki nowej linii, ponieważ proste echo nie jest uniwersalnym narzędziem do bezpiecznego kodowania ani serializacji danych.
Opcje i sekwencje specjalne wymagają ostrożności. W części implementacji przełącznik -n pomija końcowy znak nowej linii, a -e włącza interpretowanie sekwencji takich jak \n lub \t, jednak obsługa tych zachowań nie jest identyczna we wszystkich powłokach i systemach. Jeżeli tekst zaczyna się od myślnika, może zostać potraktowany jako opcja, zależnie od implementacji. Przy formatowaniu komunikatów skryptów lepszą kontrolę zapewnia printf '%s\n' "$tekst", ponieważ format i dane są wtedy rozdzielone, a wartość zmiennej nie jest interpretowana jako format polecenia.
Echo jako pomoc przy sprawdzaniu działania komputera
Komunikaty generowane przez echo są przydatne podczas ręcznego uruchamiania poleceń i prostych skryptów. Można za ich pomocą sprawdzić, czy zmienna została ustawiona, czy warunek w skrypcie prowadzi do oczekiwanej gałęzi albo jaka ścieżka została wyliczona przed uruchomieniem programu. Samo wyświetlenie wartości nie potwierdza jednak, że wskazany plik istnieje, program działa poprawnie lub usługa odpowiada. Do takich kontroli trzeba użyć poleceń przeznaczonych do sprawdzania plików, procesów, kodów wyjścia i połączeń.
Jeżeli polecenie echo wyświetla pustą linię, przyczyną może być nieustawiona zmienna, błędna składnia rozwinięcia, inna aktywna powłoka albo wartość zawierająca niewidoczne znaki. W przypadku skryptów uruchamianych z harmonogramu lub przez inne programy środowisko może różnić się od tego dostępnego w interaktywnym terminalu. Podczas diagnostyki warto więc ustalić nazwę powłoki, sposób uruchomienia skryptu oraz dokładną treść polecenia, a następnie porównać wynik z wartością oczekiwaną.
Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i ich podzespołów, gdy problemy z uruchamianiem skryptów, konfiguracją systemu lub działaniem oprogramowania wymagają sprawdzenia całego środowiska pracy.