在for循环中,我正在查找:如果Array1
长度匹配Array2
长度然后break
for循环。检查Array1长度是否等于Array2长度(bash)
Shellcheck抛出错误(在脚本运行正常)
if [[ "${!Array1[@]}" == "${!Array2[@]}" ]] ; then
break;
fi
^-- SC2199: Arrays implicitly concatenate in [[ ]]. Use a loop (or explicit * instead of @).
我还在学习bash和我的老师说:“与Shellcheck始终验证”和“始终把双[[]]条件语句“和‘从不使用*数组长度’
错误(S)与校正
if [ "${!Array1[*]}" == "${!Array2[*]}" ] ; then
break;
fi
我想知道什么是最好的做法在这里被删除?
如果长度你指元件的数量,' “{!数组1 [@]} $”'是错误。 – Cyrus
用'“$ {#array [@]}”获取数组的长度(元素个数)。 – Leon