Ten szybki przewodnik pokaże metody definiowania zmiennych strun wielopoziomowych za pomocą postaci ucieczki i heredoc.
Bash Escape Postacie
Bash, podobnie jak większość języków programowania, zapewnia możliwość używania znaków ucieczki. Postacie ucieczki pozwalają nam wywołać nową interpretację sekwencji postaci. Chociaż Bash ma różne postacie ucieczki, musimy tylko martwić się \ n (nowa postać linii).
Na przykład, jeśli mamy ciąg multiline w skrypcie, możemy użyć znaku \ n do utworzenia nowego wiersza w razie potrzeby.
Przykładem takiego przypadku użycia jest:
#!/bin/bash
str = „To jest ciąg \ n-i inny \ n i inny \ n i końcowy”
echo -e $ str
Wykonanie powyższego skryptu drukuje struny w nowej linii, w której istnieje charakter \ n.
Heredoc
Powyższa metoda działa dobrze dla prostego tekstu linii. Jeśli jednak musimy wydrukować tekst z innymi znakami specjalnymi, luzami i cytatami, staje się on niepotrzebnie złożony. Aby rozwiązać taki problem, możemy użyć Heredoc.
Co to jest heredoc?
Heredoc to blok kodu specjalnego przez.
Składnia HerEdoc w Bash jest:
KOMENDA << DELIMITER
…
Blok heredoc
…
…
SYMITER
Delimiters w heredoc mogą być dowolnym sznurkiem. Jednak najczęstszymi strunami są EOF, EOM lub koniec.
Gdy skorupa napotyka ograniczenie, zastępuje wszystkie zmienne, polecenia i znaki specjalne, a następnie przekazuje informacje wewnątrz bloku Heredoc do głównego polecenia.
Możesz dołączyć znaki specjalne, regularne struny, zmienne i inne polecenia Shell w bloku Herredoc.
Zapewnij zakończenie bloku Heredoc za pomocą ogranicznika. Nie dodawaj białej listy przed ograniczeniem.
Ciąg wielopoziomowy za pomocą Heredoc
Załóżmy, że masz następujący ciąg:
Wewnątrz skryptu Bash możemy utworzyć warunek i przekazać ciąg powyżej do CAT, jak pokazano poniżej:
#!/bin/bash
String = $ (cat << EOF
Dokument
EOF
)
Echo $ String
Po uruchomieniu powyższego skryptu zobaczysz wyjście A:
Jak widać, możemy wydrukować cały ciąg, w tym wszystkie znaki specjalne.
Wniosek
W tym przewodniku omówiliśmy, jak zdefiniować i używać ciągów wielopoziomowych w skrypcie Bash. Jednak HerEdoc jest coś więcej niż omówiono. Rozważ następujące zasoby, aby dowiedzieć się więcej.