At tjekke om nogen af de parametre, der er passeret til et bash-script, matcher en bestemt streng kan være udfordrende, især når der er mange parametre. Her er nogle effektive metoder til at gøre dette:
En simpel og effektiv måde at tjekke parametre på er ved at bruge en for-løkke. Dette gør det muligt at iterere gennem alle parametrene og sammenligne hver enkelt med den ønskede streng.
#!/bin/bash
target_string="desired_string"
for param in "$@"
do
if [ "$param" == "$target_string" ]; then
echo "Match found: $param"
# Gør noget med den matchende parameter
fi
done
En case-sætning kan også bruges til at tjekke om nogen af parametrene matcher den ønskede streng. Dette kan være mere læsbart, især hvis der er mange forskellige strenge at tjekke imod.
#!/bin/bash
target_string="desired_string"
for param in "$@"
do
case "$param" in
"$target_string")
echo "Match found: $param"
# Gør noget med den matchende parameter
;;
esac
done
Hvis du har brug for at tjekke parametre flere steder i dit script, kan det være nyttigt at definere en funktion til dette formål. Dette gør dit script mere modulært og genanvendeligt.
#!/bin/bash
check_params() {
local target_string="$1"
shift
for param in "$@"
do
if [ "$param" == "$target_string" ]; then
echo "Match found: $param"
return 0
fi
done
return 1
}
target_string="desired_string"
check_params "$target_string" "$@"
En anden metode er at konvertere parametrene til et array og bruge grep
til at finde den ønskede streng. Dette kan være mere effektivt, hvis du har mange parametre.
#!/bin/bash
target_string="desired_string"
params=("$@")
if printf "%s
" "${params[@]}" | grep -q "^$target_string$"; then
echo "Match found: $target_string"
# Gør noget med den matchende parameter
fi
Ved at bruge en af disse metoder kan du effektivt tjekke om nogen af de parametre, der er passeret til dit bash-script, matcher en bestemt streng, selv når der er mange parametre.
Spar dig selv for besvær og kom igennem din to-do liste i dag
1
Beskriv din opgave
2
Modtag bud
3
Få løst din opgave
Møbelsamling
Hjælp med at samle Ikea klædeskab
Maler
Klargøring af lejlighed til flyttesyn
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Havearbejde
Beskæring af 4 større træer
IT support
Geninstallering af windows + programmer
Elektriker
Installation af Sonos musikanlæg i hus
Rengøring
Ugentlig rengøring af lejlighed (114kvm)
Flyttehjælp
Flytning af 150 kvm hus til Roskilde fra København
Elektriker
Opsætning af lamper i stue og soveværelse
Catering
3-retters menu til 14 mennesker