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.
Har du brug for hjælp til Bash-scripts eller programmering? Med Handyhand kan du nemt oprette din opgave gratis og få bud fra dygtige freelancere på få minutter. Uanset om det er små justeringer eller større projekter, er hjælp lige ved hånden.