有没有办法检查数组中的所有元素,而if
数组中的所有元素都没有保持字符串mystring
以返回true?例如,如果包含2个元素的数组的任何元素持有mystring
,我希望它返回为false,其他任何内容都为真:
[mystring][mystring] = false/don't do anything
[mystring][A] = false/don't do anything
[@#$2][mystring]=false/don't do anything
[asda][wrwe]=true
问:如何使用 n 元素检查数组,如果该数组中的所有元素都不包含mystring
以外的任何其他值,则应返回真?
我的尝试是:
for element_number in `seq 0 $going_through_the_elements_of_the_array`;
do
my_var=${the_array[$element_number]}
if ! [[ $my_var == "$my_string" ]]
then
echo " This should be printed"
exit
fi
done
答案 0 :(得分:1)
这应该做你想要的:
case ${the_array[@]}
in
*my string*) echo "true" ;;
*) echo "false" ;;
esac
它将数组扩展为单个字符串,然后使用case语句中的RE机制来搜索目标。发现它的情况打印为true,所有其他情况打印错误。