diff --git a/validate_command_access.sh b/validate_command_access.sh index 06dc023..93894e1 100644 --- a/validate_command_access.sh +++ b/validate_command_access.sh @@ -68,14 +68,14 @@ validate_command() { declare -A seen=() for a in "${args[@]}"; do - [[ -z "${allowed_set[$a]}" ]] && { + if [[ -z "${allowed_set[$a]+_}" ]]; then echo "ERROR: Invalid argument '$a' for '$cmd'; allowed: (${allowed[*]})" >&2 return 1 - } - [[ -n "${seen[$a]}" ]] && { + fi + if [[ -n "${seen[$a]+_}" ]]; then echo "ERROR: Duplicate argument '$a' for '$cmd'" >&2 return 1 - } + fi seen["$a"]=1 done return 0