Bash Definer Multiline String Variable

Bash Definer Multiline String Variable
La oss anta at du har møtt et scenario der du trenger å definere en multiline blokk med streng i bash -skriptoperasjonene dine. Hvis du prøver standard måten å definere en variabel i bash, er du bundet til å møte en feil eller en ufullstendig del av variabelen.

Denne raske guiden vil vise deg metoder for å definere multiline strengvariabler ved hjelp av rømningskarakterer og Heredoc.

Bash Escape -figurer

Bash, som de fleste programmeringsspråk, gir muligheten til å bruke rømningskarakterer. Escape -tegn lar oss påkalle en ny tolkning av karaktersekvenser. Selv om Bash har forskjellige rømningskarakterer, trenger vi bare å bekymre oss for \ n (ny linjekarakter).

For eksempel, hvis vi har en multiline streng i et skript, kan vi bruke \ n -karakteren til å lage en ny linje der det er nødvendig.

Et eksempel på en slik brukssak er:

#!/bin/bash
STR = “Dette er en streng \ n-og en annen \ n-og en annen \ n-og den endelige en”
ekko -e $ str

Å utføre skriptet ovenfor skriver ut strengene i en ny linje der \ n -karakteren eksisterer.

Heredoc

Ovennevnte metode fungerer bra for enkel linjetekst. Imidlertid, hvis vi trenger å skrive ut en tekst med andre spesialtegn, tilbakeslag og sitater, blir den unødvendig sammensatt. For å løse et slikt problem, kan vi bruke Heredoc.

Hva er en Heredoc?

En Heredoc er en spesialfornyelse som forteller at skallet skal lese innspill fra den nåværende kilden til den møter en linje som inneholder en avgrenser.

Syntaksen for Heredoc i bash er:

KOMMANDO << DELIMITER
..
Heredoc Block
..
..
Avgrensning

Avgrensere i en Heredoc kan være hvilken som helst streng. Imidlertid er de vanligste strengene EOF, EOM eller END.

Når skallet har møter avgrenseren, erstatter det alle variablene, kommandoene og spesialtegnene og fører deretter informasjonen i Heredoc -blokken til hovedkommandoen.

Du kan inkludere spesialtegn, vanlige strenger, variabler og andre skallkommandoer i Heredoc -blokken.

Forsikre deg om å avslutte Heredoc -blokken med avgrenseren. Ikke legg til noe hvitrommet før avgrenseren.

Multiline streng ved hjelp av Heredoc

Anta at du har følgende streng:







Dokument



Inne i et bash -skript kan vi lage en variabel og sende strengen over til CAT som vist nedenfor:

#!/bin/bash
streng = $ (katt << EOF






Dokument




Eof
)
ekko $ streng

Når du har kjørt skriptet ovenfor, vil du se en utdata A:

Som du kan se, kan vi skrive ut hele strengen, inkludert alle spesialtegn.

Konklusjon

For denne guiden diskuterte vi hvordan vi kan definere og bruke en multiline streng i et bash -skript. Imidlertid er det mer med Heredoc enn diskutert her. Vurder følgende ressurs for å lære mer.