I mange programmeringsspråk, inkludert bash, er vanlige uttrykk kjent som regex, et effektivt verktøy for mønstermatching og tekstbehandling. IF -uttalelsen er en vanlig kontrollstruktur som brukes i bashskript for å utføre visse kommandoer basert på visse betingelser. I Bash kan du bruke Regex til å matche mønstre i IF -uttalelser for å kontrollere utførelsen av manuset, og denne guiden handler om Regex -matching i en bash hvis uttalelse.
Regex som matcher i en bash hvis uttalelse
Syntaksen for bruk av regex i en bash hvis uttalelse er grei, da du kan bruke = ~ operatøren til å matche en streng mot et vanlig uttrykksmønster, her er et eksempel:
#!/bin/bash
hvis [["hei linux" = ~ ^hei.*]]; deretter
ekko "kamp funnet!""
ellers
ekko "Ingen kamp funnet.""
fi
IF -uttalelsen sjekker om strengen “Hello Linux” samsvarer med det vanlige uttrykksmønsteret “^Hallo.*”. Karetten (^) symbolet i mønsteret indikerer begynnelsen av strengen, og dot-stjernen (. ) samsvarer med en hvilken som helst karakter null eller flere ganger.
Hvis kampen blir funnet, vil skriptet utføre kommandoene i den daværende blokken. I dette tilfellet vil skriptet skrive ut “Match funnet!”Til konsollen. Hvis det ikke er noen samsvar, vil manuset utføre kommandoene i andre blokken, som vil skrive ut “Ingen kamp funnet.”Til konsollen:
Du kan også bruke regex for å matche mot variabler i et bash -skript, her er et eksempel:
#!/bin/bash
Str = "Hei Linux"
hvis [[$ str = ~ ^hei.*]]; deretter
ekko "kamp funnet!""
ellers
ekko "Ingen kamp funnet.""
fi
Her sjekker IF -uttalelsen om variabelen “STR” samsvarer med det vanlige uttrykksmønsteret “^Hallo.*”. Variabelen er vedlagt i doble sitater for å forhindre at orddeling og utvidelse av filnavn:
Konklusjon
En bash hvis uttalelse med Regex -matching er et effektivt verktøy for tekstbehandling og mønstermatching i bash -skript. Det kan brukes til å begrense hvordan skriptene dine blir utført basert på bestemte kriterier. Ved å mestre Regex -matching i bash, kan du skrive mer effektive og effektive skript som automatiserer arbeidsflyten din og sparer deg tid og krefter.