Jaka jest różnica między printf i echo w Bash?

Jaka jest różnica między printf i echo w Bash?
Możemy chcieć zorganizować wynik operacji Ubuntu w określony sposób. Być może powinniśmy uniknąć rozdętych wyników i przedstawić informacje w zwięzłym stylu. Polecenia echo i printf są również konstruowane. PrintF przewiduje tworzenie ciągu formatowania i oferuje niezerowy status rezygnacji, gdy się nie powiedzie. Podczas gdy echo zwykle odchodzi ze statusem 0 i zazwyczaj wysyła wejścia kierowane przez koniec znaku linii na tym standardowym wyniku. „PrintF” daje więcej opcji formatu wyjściowego niż „echo”. Podczas tej krótkiej lekcji przyjrzymy się, jak stylizować wyniki terminalu za pomocą instrukcji echo i printf na Ubuntu 20.04 System Linux.

Przykład 01:

Aby podkreślić i zobaczyć działanie instrukcji printf i echo, miejmy nasz pierwszy prosty i łatwy do zrobienia przykład. Musisz otworzyć aplikację konsoli, aby to zrobić. W tym celu użyj „ctrl+alt+t” na ekranie stacjonarnym Ubuntu 20.04 system operacyjny Linux. Aplikacja konsolowa zostanie otwarta za kilka chwil i za to nie musisz dużo czekać. Po otwarciu terminalu wykonamy zarówno instrukcje „PrintF”, jak i „Echo” osobno, aby zobaczyć, jak działają poprawnie. Więc najpierw wypróbowaliśmy „Printf” na powładzie, aby wydrukować liczbę znaków w ciągu „Linux” na naszej powładzie.

Polecenie zostało użyte z flagą „-M” wraz z słowem kluczowym „WC”. Polecenie zostało wymienione na poniższym obrazku. Po wykonaniu tego polecenia, naciskając klawisz „Enter”, w rezultacie otrzymaliśmy 5. Oznacza to, że „printf” zawiera tylko 5 liter. Ponieważ PrintF jest standardowym stwierdzeniem, dlatego wyświetlałby argumenty w standardowej formie sformatowanej.

$ printf „Linux” | WC -M

Rzućmy się teraz na oświadczenie „echo”. Tak więc ogólna składnia polecenia będzie taka sama, ale instrukcja „echo” będzie używana zamiast „printf” tutaj. Ciąg podany w poleceniu jest również taki sam. Kiedy uruchamiamy polecenie na konsoli, w rezultacie wyświetla numer 6. Dlaczego to się dzieje, gdy ciąg zawiera tylko 5 znaków? Wynika to z faktu, że stwierdzenie „echo” liczy również „nową linię” jako postać zgodnie z podręcznikiem standardowego ManPage Bash „Echo”. Jeśli dodamy trochę miejsca przed lub po łańcuchu, przyjmie to również jako postać.

$ echo „Linux” | WC -M

Przykład 02: Za pomocą printf

Zobaczmy działanie instrukcji „PrintF” w naszym nowym przykładzie. Utwórz nowy plik bash „test testowy.sh ”z wykorzystaniem polecenia nano touch, a następnie polecenia„ nano ”w skorupce. Polecenie Nano zostanie użyte do otwarcia pliku w ramach edytora „Nano”. Po otwarciu pliku dodaliśmy rozszerzenie Bash najpierw na pierwszym wierszu pliku. Zmienna „STR” została zainicjowana z długą wartością łańcucha. Zadeklarowaliśmy wbudowaną zmienną „IFS”, aby używać przestrzeni jako jej wartości ogranicznika.

Następnie użyliśmy polecenia „odczyt” w następnym wierszu, aby odczytać wartości zmiennej ciągu jako tablicy i zapisu w zmiennej „ARR”. Flaga „-ra” została tutaj użyta w tym celu. Następnie wykorzystywana jest instrukcja Echo, aby poinformować nas o rozmiarze zmiennej tablicy „ARR”. Pętla „for” została zainicjowana, aby iterować każde słowo ze zmiennej łańcuchowej i wyświetlanie go na powładzie za pomocą instrukcji „printf”. Jak wiemy, printf nie bierze następnego wiersza jako następnej postaci automatycznie, więc użyliśmy znaku „\ n” w instrukcji printf, aby to zrobić. Pętla kończy się tutaj, a kod zostanie zapisany za pomocą klawisza skrótu „Ctrl+S”.

Aby zobaczyć wyniki instrukcji PrintF, wykonaj plik za pomocą polecenia „Bash”, aby działał. Wyjście wyświetla rozmiar tablicy, i.mi., 9. Następnie każde słowo łańcucha zostało iterowane przy użyciu pętli „for” i wyświetlane na terminalu osobno na każdym następnym wierszu. Dokonano tego za pomocą klauzuli „\ n” w klauzuli „printf”. W przeciwnym razie może się to nie zdarzyć.

Test $ Bash.cii

Przykład 03: Za pomocą ECHO

W tym nowym przykładzie ilustrujemy działanie instrukcji „echo” w skrypcie Bash. Więc otworzyliśmy ten sam „test.sh ”Znajdź za pomocą polecenia„ Nano ”w konsoli skorupy. Plik jest otwarty w edytorze Nano. Cały kod pozostał niezmieniony, ja.mi., Obsługa BASH, ciąg „str”, zmienna IFS, instrukcje odczytu i „dla” pętli. Jedyną zmianą, którą musisz zrobić, to: zastąpić słowo „printf” słowem kluczowym „echo” w skrypcie Bash.

Widać, że dodaliśmy również „\ n” w instrukcji „echo”, aby dostać się na nową linię. Jak wszyscy wiemy, że stwierdzenie „echo” zawsze uważa nową linię za dodatkową postać; Dlatego nie sformatuje wyjścia jako takiego.

Uruchom kod, aby zobaczyć wyniki. Zamiast tworzyć lukę 1 nowej linii, instrukcja Echo uważa „\ n” za dodatkową postać. Dlatego wyjście wygląda jak coś poniżej.

Test $ Bash.cii

Zaktualizujmy kod, aby uzyskać wymagane wyniki. Tak więc po otwarciu pliku usunęliśmy znak „\ n” z ciągu instrukcji echo. Zapisał kod i opuścił plik.

Po uruchomieniu zaktualizowanego kodu tym razem ponownie mamy rozmiar tablicy ciągu jako „9”. Następnie wszystkie słowa tablicy zostały wyświetlone osobno, każdy z następnego wiersza.

Test $ Bash.cii

Wniosek:

Ten przewodnik zawiera więcej niż jeden przykład ilustrujący funkcjonalność i różnicę instrukcji „printf” i „echo”. Wolę używać instrukcji „PrintF” w BASH, ponieważ jest on bardziej znormalizowany, ponieważ „echo” zachowuje się na innych platformach.