Проверьте, содержит ли массив Bash значение



в Bash, каков самый простой способ проверить, содержит ли массив определенное значение?



Edit: С помощью ответов и комментариев, после некоторого тестирования, я придумал это:



function contains() {
local n=$#
local value=${!n}
for ((i=1;i < $#;i++)) {
if [ "${!i}" == "${value}" ]; then
echo "y"
return 0
fi
}
echo "n"
return 1
}

A=("one" "two" "three four")
if [ $(contains "${A[@]}" "one") == "y" ]; then
echo "contains one"
fi
if [ $(contains "${A[@]}" "three") == "y" ]; then
echo "contains three"
fi


Я не уверен, если это лучшее решение, но это, кажется, работает.

710   0  

Comments

    Ничего не найдено.