"Não" é escrito !
, sem pontuação e um espaço depois.
if ! id "$user_name" > /dev/null 2>&1
then
echo 1>&2 "This user does NOT exists. Please create that user before using this script.\n"
exit 1
fi
Sua proposta funcionaria, mas os parênteses criam uma subshell para executar o comando id
, que é supérfluo.
Outras alterações:
- Sempre coloque aspas duplas em torno das substituições de variáveis:
"$user_name"
- Já existe uma variável
USER
, que é o nome do usuário logado atual. Os nomes das variáveis são sensíveis a maiúsculas e minúsculas, mas os humanos não tanto. - Retorna um valor entre 1 e 125 para indicar falha em um programa.
- Relatar erros ao erro padrão (descritor de arquivo 2), não à saída padrão.