Может быть, упростить l oop.
while read user
do if userdel -r "${user}"
then echo "Successfully cleaned up '${user}'"
else echo "Failed to cleanup '${user}': exit code: '$?'"
fi
done < <( awk -F':' '$1 ~ /^gke-[a-z0-9]{20}$/ { print $1 }' /etc/passwd )
Должно быть, по крайней мере, легче отлаживать. Добавьте set -x
, как предлагается, чтобы увидеть, что оценивается.