[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Validar se existe umusuário ...
From: |
Pedro Henrique Ponchio |
Subject: |
RES: [shell-script] Validar se existe umusuário ... |
Date: |
Tue, 21 Aug 2001 17:18:02 -0300 |
Muito obrigado pela sua ajuda, estou aqui tentando há algum tempo mas
não consegui fazer o seu exemplo funcionar. Sou meio newbie em shell,
mas se tiver interesse, segue o script inteiro ...
[[]]´s
Pedro
#!/bin/bash
# Script que apaga e-mails do usuário
function usage
{
echo
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo " Modo de usar: "
echo " \"$0\" 'nome_do_usuário'"
echo
echo "= !Somente como root pode-se apagar e-mail de qqer um! ="
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo
exit 1
}
ARGS=1
if [ ! -n "$1" ] ; then
usage
fi
if [ $# -gt "$ARGS" ] ; then
usage
fi
POS=$1
echo
echo " == Iniciando Apagador de e-mails == "
sleep 2
# if [ "`cat /etc/passwd | cut -d: -f1 | grep $1`" = "" ] ; then ->
opções provavelmente válidas
# if [ "`cut -f1 -d: /etc/passwd | grep $1`" = "" ] ; then
if [ "`grep -q "^$1:" /etc/passwd`" = "" ] ; then
echo "Usuário '$POS' não existe. Saindo ..."
exit 1
else
echo "Checando se há mensagens para o usuário '$POS' ..."
fi
ARQUIVO=/var/spool/mail/${POS}
TAMANHO=`ls -lah /var/spool/mail | grep ${POS} | awk '{print $5}'`
if [ -s $ARQUIVO ] ; then
echo
echo "O tamanho do mail do usuário $POS é $TAMANHO."
echo "Apagando ..."
sleep 2
cat /dev/null > $ARQUIVO
echo "Pronto! Checando se foi apagado ..."
if [ "`ls -la /var/spool/mail | grep ${POS} | awk '{print $5}'`"
-eq "0" ] ; then
echo "Email apagado com sucesso."
echo
exit 0
else
echo "Parece que ainda temos alguns e-mails ... olhe
só:"
SHOW=`ls -lah /var/spol/mail | grep ${POS}`
echo $SHOW
echo
exit 1
fi
else
echo
sleep 2
echo "O usuário ${POS} não tem mail."
echo
exit 0
fi
-----Mensagem original-----
De: address@hidden [mailto:address@hidden]
Enviada em: Tuesday, August 21, 2001 3:56 PM
Para: address@hidden
Assunto: Re: [shell-script] Validar se existe umusuário ...
Pessoal
Observando a resposta do Daniel, me lembrei de uma dica que diminui
o
tempo de execução de qualquer script, porque não é criado um processo a
mais no UNIX.
A dica é a seguinte:
Em lugar de um comando no formato
cat arquivo | cut -f x -dy
É muito mais rápido
cut -f x -d y arquivo
pois o comando cut pode ler de um arquivo e não é necessário mostrar o
arquivo via cat, liga-lo com o pipe com o cut para cortar alguma
informação
do mesmo.
A primeira forma do comando, com pipe, deve ser usada somente se for
necessário "cortar" o resultado de algum comando e nao de um único
arquivo.
Agora em relação ao script proposto poderiamos substituir o primeiro if
pelo seguinte comando com a mesma funcionalidade
if grep -q "^$1:" /etc/passwd; then
A opção -q do grep simplesmente indica no Returno Code se o texto
procurado
existe ou não no arquivo. O texto procurado utiliza expressão regular,
onde
'^' significa o inicio da linha, seguido do nome do usuario procurado
'$1'
seguido do separador ':'.
Abraços a todos
José Augusto Martins Nieviadonski
HSBC Bank Brasil - Banco Múltiplo
Treinamento de Informática
Enviado Por : Daniel Duclos <address@hidden> - 21/08/01 15:37
Responder a shell-script
Para: <address@hidden>
cc: (cco: Jose NIEVIADONSKI/HBBR/HSBC)
Assunto: Re: [shell-script] Validar se existe um usuário ...
On Tue, 21 Aug 2001, Pedro Henrique Ponchio wrote:
> Olá galera,
>
> Precisava de alguma dica sobre como validar se existe determinado
> usuário passado num argumento ...
>
> Verificar se foi escrito corretamente o nome do usuário e só continuar
a
> execução do programa se estiver correto ...
#!/bin/bash
if [ "`cat /etc/passwd | cut -d: -f1 | grep $1`" = "" ]; then
echo "usuario nao existe"
else
echo "usuario existe"
fi
Claro, substitua os echos por qualquer acao que quiser... crie funcoes
pra
ficar mais legivel e tal... acho q eh por ai...
qualquer coisa, masnde mais dicas...
;)
Daniel Lobato Duclos - address@hidden -
http://www.cybershark.net <http://www.cybershark.net>
------------------------------------------------------------------------
---
Stand for something, or you will fall for nothing.
( http://www.gnu.org/philosophy/pragmatic.html)
<http://www.gnu.org/philosophy/pragmatic.html)>
Sair da lista: address@hidden
Banco Dados: http://www.egroups.com/group/shell-script
<http://www.egroups.com/group/shell-script>
Seu uso do Yahoo! Groups é sujeito às regras descritas em:
http://docs.yahoo.com/info/terms/ <http://docs.yahoo.com/info/terms/>
This message and any attachments are confidential to the ordinary user
of
the e-mail address to which it was addressed and may also be privileged.
If
you are not the adressee you may not copy, forward, disclose or use any
part of the message or its attachments and if you have received this
message in error, please notify the sender immediately by return e-mail
and
delete it from your system.
Internet communications cannot be guaranteed to be secure or error-free
as
information could be intercepted, corrupted, lost, arrive late or
contain
viruses. The sender therefore does not accept liability for any errors
or
omissions in the context of this message which arise as a result of
Internet transmission.
Yahoo! Groups Sponsor
<http://rd.yahoo.com/M=210949.1523302.3121208.1269402/D=egroupweb/S=1705
006580:HM/A=763786/R=0/*http://altfarm.mediaplex.com/ad/ck/1177-4458-103
9-1?mpt=998420627>
<http://us.adserver.yahoo.com/l?M=210949.1523302.3121208.1269402/D=egrou
pmail/S=1705006580:HM/A=763786/rand=632894043>
Sair da lista: address@hidden
Banco Dados: http://www.egroups.com/group/shell-script
<http://www.egroups.com/group/shell-script>
Seu uso do Yahoo! Groups é sujeito aos Termos do Serviço Yahoo!
<http://docs.yahoo.com/info/terms/> .
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- RES: [shell-script] Validar se existe umusuário ...,
Pedro Henrique Ponchio <=