Artur Pyszczuk's blog...

"The code that is the hardest to debug is the code that you know cannot possibly be wrong."
Unknown
/home/linux/commands/echo/

echo - Wyświetlanie tekstu ze standardowego wejścia (klawiatura)

Za pomocą polecenia echo, możemy wyświetlić w terminalu tekst, który wpiszemy z klawiatury. Również za pomocą polecenia echo możemy przenieść tekst do pliku. Generalnie składnia polecenia wygląda następująco:

$ echo [opcje] [ciąg znaków]

Gdzie:

Znaki specjalne (używane tylko i wyłączenie, gdy opcja -e jest włączona):

Dla przykładu, zamieszczam poniżej kilka rysunków. Na rysunku 1 widać, że można wpisać ciąg znaków w cudzysłowiu, bądź bez. Zalecam wpisywanie w cudzysłowiu, ponieważ podczas wpisywania ciągu znaków wraz ze znakami specjalnymi nie użycie cudzysłowiu prowadzi do nie poprawnej interpretacji znaków specjalnych.

Polecenie echo
Rys 1. Polecenie echo w najprostszej postaci.


Na rysunku 2 widać polecenie echo wraz z opcją -n. Polecenie to wyświetla ciąg znaków, lecz nie dodaje na końcu znaku nowej linii, przez co terminal czeka na polecenie w tej samej linii, w której wyświetlony został napis: Ala ma kota.

Polecenie echo
Rys 2. Polecenie echo z opcją -n.


Na rysunkach 3 - 8 zostało pokazane, jak używa się znaków specjalnych.

Polecenie echo
Rys 3. Polecenie echo z opcją -e.

Na rysunku 3 w pierwszej linii widać, że użyliśmy opcji -e, aby polecenie interpretowało znaki specjalne. Przekazaliśmy jako ciąg znaków znak ASCII o numerze 65 (\065) i otrzymaliśmy cyfrę 5. W drugiej linii pokazane co jest się stanie, jeśli nie użyjemy opcji -e, zostanie wyświetlony cały ciąg znaków, bez interpretacji znaków specjalnych. W trzeciej linii jest to o czym mówiłem na początku, że lepiej wpisywać ciąg znaków w cudzysłowiu, pomimo, iż użyliśmy opcji -e, znak specjalny nie został rozpoznany, a wyświetlony został ciąg znaków, bez poprzedzającego go znaku ukośnika.


Polecenie echo
Rys 4. Polecenie echo - wyświetlanie znaków specjalnych.

Na rysunku 4 widać, że aby wyświetlić backslash (\), należy poprzedzić go backslashem, czyli w ostateczności musimy wpisać dwa ukośniki. Zarówno przy włączonej orazy wyłączonej interpretacji znaków specjalnych. Analogicznie jest ze znakiem cudzysłowia.
Jeśli chodzi o znak specjalny \a, który powinien włączyć dźwięk, to nie koniecznie każdy terminal to interpretuje. Więc jeśli po wpisaniu tego znaku dostaniesz pustą linię to się nie ma co dziwić. Znak specjalny \b - backspace, użyty bez innych opcji, nie spowoduje żadnej zmiany w wyświetlanym tekście, ponieważ każdy tekst wyświetlany z opcją -e, kończy się znakiem nowej linii, tak więc aby zobaczyć działanie znaku \b, użyjemy przy okazji znak \c, który nie wyświetla znaku nowej linii. Zaprezentowane to zostało na rysunku 5. W ogólnym przypadku znak \b cofa "wskaźnik" wpisywania, w razie gdyby później zostały dopisane inne litery.

Polecenie echo
Rys 5. Polecenie echo - wyświetlanie znaków specjalnych.

Znak \n i \f w gruncie rzeczy można uznać za te same, ponieważ oba dodają po jednym znaku nowej linii do wyświetlanego tekstu (rys. 6).

Polecenie echo
Rys 6. Polecenie echo - wyświetlanie znaków specjalnych.

Na rysunku 7 został pokazany znak \r, który oznacza powrót do początku linii (z ang. Carriage return - Powrót karetki).

Polecenie echo
Rys 7. Polecenie echo - wyświetlanie znaków specjalnych.

Rysunek 8 pokazuje jak można układać wyrazy/litery za pomocą dwóch tabulacji: poziomej oraz pionowej oraz znaku nowej linii.

Polecenie echo
Rys 8. Polecenie echo - wyświetlanie znaków specjalnych.

Na pierwszy rzut oka, polecenie to może wydawać się dość trudnę. Jednak tak nie jest, nie ma tam nic innego czego byśmy nie poznali czytając tę stronę od początku. Po każdym znaku (oprócz znaków kończących wyrazy) jest znak specjalny \t - tabulacja pozioma, po ostatnim znaku z wyrazu jest znak nowej linii - \n oraz znak tabulacji pionowej - \v.


Wiecej informacji na temat programu echo znajdziesz również w programie info.
Wpisujac w konsoli info coreutils 'echo invocation'

Some rights reserved 2010 - 2015 Artur Pyszczuk

| Strona Główna | Kontakt |