shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: [shell-script] Problema Script para Adicionar Usuários


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Problema Script para Adicionar Usuários
Date: Thu, 23 Sep 2004 15:23:37 -0300

André,
o cmd if do shell foi feito para testar instrução e não condição (se bem que
a construção [ ... ] equivale ao cmd test). Então a forma mais limpa e pura
de fazer este teu trecho de código é:

Se vc não estivesse atribuindo valor a verusuario, vc poderia tranquilamente
escrever (e no seu caso, me parece que a atribuição é desnecessária):

echo -n "Nome de Usuario: "
read username
if  cat /etc/passwd |cut -d: -f1 | grep "$username" |cut -d: -f1
then
    echo "Este usuario ja existe no sistema, processo abortado!"
    exit
fi
.... prossegue o script

Para fazer a atribuição e o teste, a sintaxe abaixo é a mais eficiente.

echo -n "Nome de Usuario: "
read username
[ verusuario=`cat /etc/passwd |cut -d: -f1 | grep "$username" |cut -d: -f1`
] &&
    {
    echo "Este usuario ja existe no sistema, processo abortado!"
    exit
    }
.... prossegue o script

Julio Cezar Neves
- Gerente do Programa de Software Livre -
Tel:+55 21 2528-7070 / +55 21 8112-9988
Fax: +55 21 2528-7646
mailto:address@hidden


| -----Mensagem original-----
| De: André Luiz [mailto:address@hidden]
| Enviada em: quinta-feira, 23 de setembro de 2004 13:35
| Para: address@hidden
| Assunto: [shell-script] Problema Script para Adicionar Usuários
| 
| 
| Amigos da lista boa tarde a todos vcs!
| 
| Seguinte galera, acho que essa eh uma dúvida bem básica porém 
| eu não entendo muito de shell e está si tornando uma dúvida 
| meio chata heheh
| To fazendo um script para facilitar o cadastro de usuários... 
| Fiz assim:
| 
| echo -n "Nome de Usuario: "
| read username
| verusuario=`cat /etc/passwd |cut -d: -f1 | grep "$username"`
| if [ $username = $verusuario ]; then
|         echo "Este usuario ja existe no sistema, processo abortado!"
|         exit 0
| else
| .... prossegue o script
| 
| o que tah acontecendo é o seguinte... qdo o usuario ainda não 
| existe no sistema, o valor é em branco... e aí que dah o 
| seguinte problema:
| 
| [: =: argument expected
| 
| Olha os exemplos... qdo ele acha o usuario:
| 
| [ alfa/andre ]# sh -x cria_usuario.sh
| + echo -n Nome de Usuario:
| Nome de Usuario: + read username
| andre
| + cat+ cut+ grep /etc/passwd -d: andre
|  -f1
| 
| + verusuario=andre
| + [ andre = andre ]
| + echo Este usuario ja existe no sistema, processo abortado!
| Este usuario ja existe no sistema, processo abortado!
| + exit 0
| 
| 
| 
| agora olha o que acontece qdo o usuario naum existe:
| 
| [ alfa/andre ]# sh -x cria_usuario.sh
| + echo -n Nome de Usuario:
| Nome de Usuario: + read username
| luiz
| + cat+ cut+ grep /etc/passwd -d: luiz
|  -f1
| 
| + verusuario=
| + [ luiz = ]
| [: =: argument expected
| 
| Entenderam? pois é e esse errinho aí tah me chateando... 
| algum amigo da lista poderia me ajudar a "consertar" isso?
| 
| Obrigado a todos... tenham uma excelente tarde
| 
| André Luiz
| 
| 
| [As partes desta mensagem que não continham texto foram removidas]
| 
| 
| 
| ---------------------------------------------------------------------
| Esta lista não admite a abordagem de outras liguagens de 
| programação, como perl, C etc. Quem insistir em não seguir 
| esta regra será moderado sem prévio aviso.
| ---------------------------------------------------------------------
| Sair da lista: address@hidden
| ---------------------------------------------------------------------
| Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
 
Links do Yahoo! Grupos




 
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]