获得差异
arr_diff=$(echo ${arr1[@]} ${arr2[@]} | tr ' ' '\n' | sort | uniq -u)
echo ${arr_diff[@]} //output => (aa bb ff)
,但是,如果我尝试查询差异数组的大小,我会发现错误的答案。
echo ${#arr_diff[@]} //output => 1
由于如何分配ARR_DIFF,问题发生。当您使用命令替换
$(...)
时,结果将分配为单个字符串,而不是数组。这就是为什么
echo ${#arr_diff[@]}
返回1的原因,因为它将整个输出视为一个元素。 尝试这个: