Funkcja printf Bash: 7 przykładów dla Linuksa

Funkcja printf Bash: 7 przykładów dla Linuksa

Jeśli używasz powłoki Bash przez przyzwoity czas, prawdopodobnie wiesz, jak drukować łańcuchy w terminalu Linux za pomocą polecenia echo. Jednak polecenie printf znacznie ułatwia drukowanie tekstu z określonym formatowaniem.





Dzisiaj nauczymy się, jak korzystać z funkcji printf, aby poprawić nasze umiejętności pisania skryptów w Bash.





Co to jest funkcja printf Bash?

Jak sama nazwa wskazuje, printf to funkcja, która drukuje sformatowane ciągi tekstu. Oznacza to, że możesz napisać strukturę łańcuchową (format), a później wypełnić ją wartościami (argumentami).





Jeśli znasz języki programowania C/C++, być może wiesz już, jak działa printf. Printf w powłoce Bash jest bardzo podobny, ale ma kilka małych różnic.

Ucz się więcej: Najlepsze strony do rozpoczęcia programowania w C++



Jak używać printf w powłoce Bash

Podstawowa składnia printf to:

printf format [argument]

Printf wydrukuje format ciąg podczas wdrażania przecieki ( ) oraz dyrektywy ( % ) poprzez użycie określonego argumenty . Zwróć uwagę na dane wyjściowe następującego polecenia:





$ printf 'Hello, %s' world
Hello, world

Printf wziął świat argument i zastąpił %s znak w określonym ciągu z nim.

Możesz zauważyć, że po wyjściu Bash nie tworzy dla ciebie nowej linii. W przeciwieństwie do polecenia echo, printf nie zakłada, że ​​po wydrukowaniu danych wyjściowych chcesz mieć nowy wiersz. Dlatego musisz użyć znaku nowej linii w każdym przypadku.





Aby wydrukować ciąg, a następnie przejść do nowej linii, wpisz printf 'Witaj, świecie ' .

Hello, world

Ważne jest, aby pamiętać, że printf spróbuje ponownie użyć formatu dla wszystkich twoich argumentów. Możesz to wykorzystać na swoją korzyść, ale jeśli nie będziesz ostrożny, możesz uzyskać takie wyniki:

$ printf 'My name is %s ' Jordan Gloor
My name is Jordan My name is Gloor

Należy również pamiętać, że jeśli brakuje argumentu, printf zinterpretuje wszystkie dyrektywy jako 0 (dla liczby) i zero (dla sznurka).

$ printf 'Hello, %s.'
Hello, .

Teraz, gdy wiesz, jak działa skrypt Bash z printf w Linuksie, możesz zacząć używać go w swoich poleceniach.

Przykłady printf w Linuksie Bash

Printf zawiera wiele specyfikatorów formatu, których możesz użyć w swoich skryptach. Ale dzisiaj zajmiemy się tylko niektórymi typowymi funkcjami.

1. Formatuj wyjście za pomocą ciągu

Aby sformatować wyjście za pomocą ciągów tekstu, użyj %s dyrektywa.

$ printf '%s is one of the largest online %s.' MUO 'technology publications'
MUO is one of the largest online technology publications.

2. Formatuj ciąg wyjściowy za pomocą miejsc dziesiętnych

Aby sformatować ciąg z liczbą całkowitą, możesz użyć %D dyrektywa dla znaku dziesiętnego.

$ printf 'MUO was founded in %d.' 2007
MUO was founded in 2007.

Zauważ, że jeśli chcesz użyć na wyjściu liczby dziesiętnej bez znaku, będziesz musiał użyć % u zamiast dyrektywy.

Windows 10 pobiera, ale się nie instaluje

Związane z: Co oznacza „Bash” w Linuksie?

3. Wyprowadzanie funkcji matematycznych za pomocą printf

Formatowanie funkcji matematycznych za pomocą polecenia printf jest łatwe. Po prostu umieść swoje wyrażenie w podwójnych nawiasach, tak jak zwykle robisz to w Bash, i określ wyrażenie na liście argumentów.

$ printf '1 + 1 is %d' $((1+1))
1 + 1 is 2

4. Formatuj liczby szesnastkowe

Jeśli potrzebujesz sformatować liczbę szesnastkową, użyj % x dla małych liter i % X dla wielkich liter.

$ printf %X 1000
3E8C

Aby wydrukować bieżącą datę i godzinę, możesz połączyć printf z Data polecenie i przekaż następujące dyrektywy.

$ printf '%(%m-%d-%Y %H:%M:%S)T' $(date +%s)
03-26-2021 15:27:57

Możesz zobaczyć specyfikatory formatu dla miesiąca, dnia, roku, godziny, minuty i sekundy we wspomnianych danych wyjściowych.

6. Formatuj ciągi znaków ze znakami Unicode

Aby wydrukować znaki Unicode za pomocą printf, użyj ty escape dla 16-bitowego Unicode i U dla 32-bitowego Unicode.

Na przykład możesz wydrukować prawa autorskie symbol za pomocą następującego polecenia:

$ printf 'u00A9'
©

7. Dodaj odstęp do wyjścia

Możesz sformatować swoje ciągi za pomocą odstępów, definiując przed specyfikatorem dyrektywy minimalną liczbę drukowanych znaków. Nieużywane znaki zostaną wypełnione spacjami.

Na przykład pisanie printf '%s:%5d ' 'Wartość 1' 25 'Wartość 2' 120 wypisze:

Value 1: 25
Value 2: 120

ten %5d specyfikator formatu w danych wyjściowych oznacza, że ​​sformatowany ciąg będzie zawierał co najmniej pięć znaków. Ponieważ 25 ma tylko dwie cyfry, do pozostałych znaków dodawane są spacje.

Jeśli jako szerokość przekażesz liczbę ujemną, dyrektywa zostanie wyrównana do lewej zamiast do prawej.

$ printf '%-10s: %d ' 'Circles' 25 'Boxes' 120
Circles : 25 Boxes : 120

Jeśli chcesz zrobić zmienną szerokość, możesz przekazać gwiazdkę zamiast liczby, a printf użyje następnej liczby, którą znajdzie na liście argumentów.

$ printf '%*s: %d ' -10 'Circles' 25 -10 'Boxes' 120
Circles : 25 Boxes : 120

Związane z: Wszystko, co musisz wiedzieć o Bash For Loops w systemie Linux

Nauka linuksowego polecenia printf

Dzięki poleceniu printf w pasku narzędziowym Bash do tworzenia skryptów, jesteś gotowy do rozpoczęcia drukowania złożonych i zmieniających się ciągów w terminalu. Podczas opracowywania skryptów Bash ważne jest, aby upewnić się, że pracujesz w możliwie najbardziej produktywnym środowisku. To nie tylko poprawi twoje umiejętności obsługi wiersza poleceń, ale także poprawi ogólny przepływ pracy.

Udział Udział Ćwierkać E-mail 10 najlepszych dystrybucji Linuksa dla programistów

Gotowy do rozpoczęcia rozwoju w systemie operacyjnym typu open source? Oto najlepsze dystrybucje Linuksa do programowania.

jak udostępniać gry na xbox one
Czytaj dalej Powiązane tematy
  • Linux
  • Powłoka Bash dla Linuksa
  • Polecenia Linuksa
O autorze Jordan Gloor(51 opublikowanych artykułów)

Jordan jest pisarzem personelu w MUO, którego pasją jest uczynienie Linuksa dostępnym i bezstresowym dla każdego. Pisze również poradniki dotyczące prywatności i produktywności.

Więcej od Jordana Gloora

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować