Bash Zdefiniuj zmienną strunową wielopoziomową

Bash Zdefiniuj zmienną strunową wielopoziomową
Załóżmy, że napotkałeś scenariusz, w którym musisz zdefiniować multiline blok sznurka w operacjach skryptowych Bash. Jeśli spróbujesz domyślnego sposobu zdefiniowania zmiennej w BASH, będziesz zobowiązał się napotkać błąd lub niekompletną część zmiennej.

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:







Dokument



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.