Der er flere måder at tjekke, om et array indeholder et bestemt element i Bash, uden nødvendigvis at skulle loope igennem hvert element. Her er nogle effektive metoder:
Associative arrays kan være en effektiv måde at tjekke for eksistensen af et element uden at loope:
declare -A array
array=([key1]=value1 [key2]=value2 [key3]=value3)
if [[ -v array[key2] ]]; then
echo "Elementet findes i arrayet"
else
echo "Elementet findes ikke i arrayet"
fi
En anden metode er at bruge 'grep' kommandoen til at søge efter elementet i arrayet:
array=("element1" "element2" "element3")
element="element2"
if printf "%s
" "${array[@]}" | grep -q -P "^${element}$"; then
echo "Elementet findes i arrayet"
else
echo "Elementet findes ikke i arrayet"
fi
En alternativ metode til at tjekke, om et tal eller en streng svarer til en af flere foruddefinerede konstanter, er at bruge 'case' statement:
value="test"
case $value in
"test1"|"test2"|"test3")
echo "Værdien matcher en af de foruddefinerede konstanter"
;;
*)
echo "Værdien matcher ikke nogen af de foruddefinerede konstanter"
;;
esac
Disse metoder kan hjælpe med at undgå at loope igennem hele arrayet og dermed forbedre effektiviteten af dine Bash-scripts.
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