【发布时间】:2019-10-02 08:45:39
【问题描述】:
我有一个包含 6 个值的数组,然后我有另外三个数组,其值介于 4 和 1 之间。我想遍历数组 1 并检查数组 1 中的值是否出现在数组 2、数组 3 和数组 4 中。目前我有以下内容,但它似乎只检查数组 1 中的值与数组 2,3 中的第一个值和4. 我省略了数组 3 和 4,但它们的 for 循环与数组 2 相同,并且在数组 1 的循环内。
array1=("value1" "value2" "value3" "value4" "value5" "value6")
for i in "${array1}"; do
array2= ("value1" "value3" "value4" "value5")
for f in "${array2}; do
if [[ ${i} == ${f} ]]; then
echo "${i} in array1 matches ${f} in array2"
else
echo "${i} in array1 does not match any value in array2"
fi
done
done
【问题讨论】:
-
${array1}和${array1[0]}一样,你应该改用${array1[@]} -
我猜这可能是一个错字,但你分配给
array2的应该是array2=("value1" "value3" "value4" "value5")(=周围没有空格)