Você está testando a existência do usuário com o grep?
Se estiver, é só lembrar que quando o comando grep falha, não encontrando nenhuma linha para exibir, ele retorna o código de erro 1. Teste isso e finalize o script quando for 0, exibindo uma mensagem.
Fica mais ou menos assim:
grep $1 /etc/passwd
if [ $? == 1 ]; then
echo "Usuário inexistente... criando usuário!"
#
# seu procedimento para criar o usuário
#
else
echo "Usuário já existe! Finalizando o script..."
exit 1
fi
Estou supondo, é claro, que o login é o primeiro parâmetro passado para esse script. Se não for, troque o $1 pelo número adequado.
Espero ter ajudado! Qualquer coisa, poste aqui novamente ou em
http://casadolinux.zip.net e tentarei ajudar mais.
Boa sorte!