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:
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.