Bash Perm Check
perm_check() {
local -n _a="$1"
local -a _sorted=($(printf '%s\n' "${_a[@]}" | sort -n))
local _c=${#_sorted[@]}
local _k
for ((_k = 0; _k < _c - 1; _k++)); do
if (( _sorted[_k] != _k + 1 )); then
echo 0
return
fi
done
echo 1
}
This validates that every value from 1 to N appears exactly once.