Я просто ищу правильный и более элегантный способ написания следующего кода на Bash:
in_array() {
local somearray=${1}[@]
local somevalue=${2}
for i in ${!somearray}; do
if [[ ${i} == ${somevalue} ]]; then
return 0
fi
done
return 1
}
#declare array
declare -a myArray=(foo bar baz qux)
#defined values
val1=foo
val2=baz
#Ugly check if multiple strings are part of the array at the same time
if in_array myArray $val1 && in_array myArray $val2; then
# Do something #
else
# Do something else#
fi
Основная идея заключается в том, что мне нужно проверить, являются ли 2 или более статических значения одновременно частью массива.
Интересно, есть ли лучший способ сделать это, потому что, если мне нужно будет проверить больше 3-4 значений ... то, если строка if in_array
станет огромной.
Любое предложение, пожалуйста?
Спасибо!