尝试比较两个数组并打印差异,并获得错误。
1.sh: line 9: syntax error near unexpected token `<'
1.sh: line 9: ` mapfile -t $1 < <(comm -23 <(echo "${a[*]}" | sort) <(echo "${b[*]}" | sort))'
如果我在命令提示符下运行,它将正常工作并正确给出结果。当我在1.sh中复制相同代码时会抛出错误
下面是代码
a=(1 2 3 4 5 6 7 9 10 11 12)
b=(2 3 4 7 8 9 12)
function array_diff
{
eval local a=\(\"\${$2[@]}\"\)
eval local b=\(\"\${$3[@]}\"\)
local IFS=$'\n'
mapfile -t $1 < <(comm -23 <(echo "${a[*]}" | sort) <(echo "${b[*]}" | sort))
}
array_diff RESULT a b
echo "${RESULT[@]}"
输出应为:1 10 11 5 6