-
Notifications
You must be signed in to change notification settings - Fork 1.8k
SC2199
Joachim Ansorg edited this page Nov 12, 2021
·
3 revisions
ext=png
allowedExt=(jpg bmp png)
[[ "$ext" = "${allowedExt[@]}" ]] && echo "Extension is valid"
ext=png
allowedExt=(jpg bmp png)
for value in "${allowedExt[@]}"
do
[[ "$ext" = "$value" ]] && echo "Extension is valid"
done
Array expansions in [[ .. ]]
will implicitly concatenate into a single string, much like in assignments. The problematic code is equivalent to [ "$ext" = "jpg bmp png" ]
.
Instead, use a for
loop to iterate over values, and apply your condition to each.
Alternatively, if you do want to concatenate all the values in the array into a single string for your test, use "$*"
or "${array[*]}"
to make this explicit.
None.