Isso é algo que você poderia usar. Ele permanecerá no loop até que um novo usuário não existente seja criado.
#!/usr/bin/env bash
anotherUser() {
read -p "Add another user? [y/n]" yn
if [[ $yn = *[yY]* ]]; then
checkUser
fi
exit
}
checkUser() {
while :
do
read -p "Enter user: " userName
if id $userName >/dev/null
then echo "User exists"
anotherUser
else
adduser "$userName"
printf "User %s has been added\n" "$userName"
exit
fi
done
}
checkUser