For at kalde et Linux-program, der kræver regulære udtryk som input, i bash-shell uden at bash fortolker specialtegnene [
, ]
, og |
, og samtidig sikre, at hvert argument behandles separat, kan du følge disse trin:
'
) beskytter alle tegn indenfor mod fortolkning."
) beskytter de fleste tegn, men tillader fortolkning af nogle specialtegn som $
og \
.\
) til at escape specialtegn, så de ikke fortolkes af bash.
\[ \]
og \|
--
: Nogle programmer accepterer --
for at indikere slutningen af kommandolinjeindstillinger, så efterfølgende argumenter behandles som almindelige argumenter.
program -- '[a-z]' '[0-9]'
Her er et eksempel på, hvordan du kan kalde et program med regulære udtryk som argumenter:
#!/bin/bash
program='my_program'
regex1='[a-z]'
regex2='[0-9]'
regex3='a|b'
# Kald programmet med regulære udtryk som argumenter
$program "$regex1" "$regex2" "$regex3"
Alternativt kan du bruge backslash til at escape specialtegnene:
#!/bin/bash
program='my_program'
regex1='\[a-z\]'
regex2='\[0-9\]'
regex3='a\|b'
# Kald programmet med regulære udtryk som argumenter
$program $regex1 $regex2 $regex3
Ved at følge disse metoder kan du sikre, at bash ikke fortolker specialtegnene i dine regulære udtryk, og at hvert argument behandles separat.
Har du brug for hjælp til Linux-programmering eller bash-scripts? Med Handyhand kan du nemt oprette din opgave gratis og få bud fra dygtige freelancere på få minutter. Uanset om du står over for en udfordring eller blot ønsker at optimere dit projekt, er hjælp lige ved hånden.