Meu script não roda nem dá mensagem de erro! [RESOLVIDO]

1. Meu script não roda nem dá mensagem de erro! [RESOLVIDO]

marcelo de carvalho
maccarver

(usa Ubuntu)

Enviado em 28/03/2008 - 05:46h

Pessoal, eu sou iniciante em shell e fiz um script tirando por base outro que achei na net mas, ao contrário do que achei na net, quando executo o meu script nada acontece. o pior é que ele não gera sequer uma mensagem de erro para que eu possa saber a razão disso. Alguém pode me ajuda?

o script é o seguinte:

#!/bin/bash
Pricipal() {
echo "Script de Funções Básicas do Servidor Genoma2"
echo "---------------------------------------------"
echo "Opções:"
echo
echo "1. Adicionar usuário ao domínio"
echo "2. Deletar usuário do domínio"
echo "3. Alterar senha de usuário"
echo "4. sair do script"
echo -n "Qual a opção desejada?"
read opcao
case $opcao in
1) Adicionar ;;
2) Deletar ;;
3) Senha ;;
4) exit ;;
*)"Digite uma opção válida"; echo ; Principal ;;
esac
}
Adicionar() {
clear
echo -n "Digite o nome do usuário"
read nome
adduser nome
smbpasswd -a nome
Principal
}
Deletar() {
clear
echo -n "Digite o nome do usuário"
read name
deluser name
smbpasswd -x name
Principal
}
Senha() {
clear
echo -n "Digite o nome do usuário"
read usuario
if [$usuario != "root"]; then
smbpasswd usuario
Principal
fi
}


  


2. Re: Meu script não roda nem dá mensagem de erro! [RESOLVIDO]

marcio hideo
hideoux

(usa OpenSuSE)

Enviado em 28/03/2008 - 07:02h

só para constar...
você mudou as permissões do script, né...

chmod +x script.sh

e depois executou ./script

uma vez, não sei por que... um script que fiz só foi rodar depois que eu peguei todas as linhas e copiei para outro editor (deveria ter algum problema com o cabeçalho do arquivo...)

abraço,
hideo


3. Re: Meu script não roda nem dá mensagem de erro! [RESOLVIDO]

César...
cesar

(usa CentOS)

Enviado em 28/03/2008 - 08:41h

Não está rodando porque a primeira função está escrita
"Pricipal" você tem que colocar "Principal" no seu caso.

Abraços


4. Re: Meu script não roda nem dá mensagem de erro! [RESOLVIDO]

César...
cesar

(usa CentOS)

Enviado em 28/03/2008 - 08:49h

Segue abaixo, script correto!

#!/bin/bash
Principal() {
echo "Script de Funções Básicas do Servidor Genoma2"
echo "---------------------------------------------"
echo "Opções:"
echo
echo "1. Adicionar usuário ao domínio"
echo "2. Deletar usuário do domínio"
echo "3. Alterar senha de usuário"
echo "4. sair do script"
echo -n "Qual a opção desejada?"
read opcao
case $opcao in
1) Adicionar ;;
2) Deletar ;;
3) Senha ;;
4) exit ;;
*)" Digite uma opção válida"; echo ; Principal ;;
esac
}
Adicionar() {
clear
echo -n "Digite o nome do usuário"
read nome
adduser nome
smbpasswd -a nome
Principal
}
Deletar() {
clear
echo -n "Digite o nome do usuário"
read name
deluser name
smbpasswd -x name
Principal
}
Senha() {
clear
echo -n "Digite o nome do usuário"
read usuario
if [$usuario != "root"]; then
smbpasswd usuario
Principal
fi
}
Principal


5. Re: Meu script não roda nem dá mensagem de erro! [RESOLVIDO]

César...
cesar

(usa CentOS)

Enviado em 28/03/2008 - 08:52h

Quando você terminou de fazer o script, você esqueceu de colocar o nome da função no final do script,

por exemplo, note que na sua pergunta não possui o "Principal" na última linha do script, por isso ele não executava,

O nome da primeira função também estava escrito errado, ele estava "Pricipal" ao ínves de "Principal"

Espero ter ajudado!

Abraço,


6. VALEU!!!

marcelo de carvalho
maccarver

(usa Ubuntu)

Enviado em 28/03/2008 - 16:51h

Putz cara, eu já tava ficando doido... precisava mesmo de um olho clínico pra achar aquela parada hehehe. Muitíssimo obrigado velho, realmente o "Pricipal" havia me passado desapercebido.
Thanks!!!!


7. Denada

César...
cesar

(usa CentOS)

Enviado em 28/03/2008 - 16:53h

Mas mesmo o "Pricipal" errado, ainda estava faltando o outro "Principal" no final do script.

Abraço e bom final de semana!


8. Re: Meu script não roda nem dá mensagem de erro! [RESOLVIDO]

Geraldo José Ferreira Chagas Júnior
gjr_rj

(usa Debian)

Enviado em 29/03/2008 - 01:40h

Só pra constar. Principal no final é a chamda da função. Ao executar o script nenhuma função pode ser executada, ele executa o código inicial, que estava vazio. Colocando principal no final, o código inicial passa a ter uma linha que é a chamada da função principal


9. Na verdade.......

Jacques De Beijer
beijer

(usa Debian)

Enviado em 23/11/2008 - 19:11h

Amigos, sei que pediram apenas para que o script rodasse, entretanto tem erros brutos no script. Na verdade esse é um tipo de script que eu so uso quando preciso que algum estagiário faça a operação, pois eu prefiro digitar os códigos!

O erro está aqui:
}
Adicionar() {
clear
echo -n "Digite o nome do usuário"
read nome
adduser nome
smbpasswd -a nome
Principal
}

read nome -> OK
adduser nome -> ???????????????? aqui vc vai criar o usuário NOME e não o definido na leitura read! Ou seja, o "nome" não está atribuido como variável e sim como string normal!

o certo seria inclui o $nome em adduser e smbpasswd

}
Adicionar() {
clear
echo -n "Digite o nome do usuário"
read nome
adduser $nome
smbpasswd -a $nome
Principal
}


Repita este procedimento para as outras subrotinas!

Espero ter ajudado! Qualquer dúvida entre em contato!
Abraços


10. Obrigado à todos.

marcelo de carvalho
maccarver

(usa Ubuntu)

Enviado em 24/11/2008 - 12:40h

A minha dúvida era o porque do script não rodar e o comando "adduser nome" (onde deveria ser "adduser $nome") não ia interferir nisto. pouco tempo depois de enviar o tópico para o forum percebí que havia esquecido o cifrão e corrigí o erro. o que fez o script não rodar foi o indicado pelo grande César Macari, de qualquer forma muito obrigado à todos e um grande abraço!


11. Meu script não roda nem dá mensagem de erro! [RESOLVIDO]

Ricardo Biasan Neto (Vulgo Seu Menino)
loirojones

(usa Debian)

Enviado em 28/12/2011 - 00:09h

cesar escreveu:

Quando você terminou de fazer o script, você esqueceu de colocar o nome da função no final do script,

por exemplo, note que na sua pergunta não possui o "Principal" na última linha do script, por isso ele não executava,

O nome da primeira função também estava escrito errado, ele estava "Pricipal" ao ínves de "Principal"

Espero ter ajudado!

Abraço,





Esse temostra o kernel da sua distribuição, o diretório onde está rodando o seu script e a arquitetura da distro.

São os comandos básicos para vc administrar seu servidor... Os comandos que o Beijer ai gosta de fazer "na mão" é mais pra quem tem uma experiência de anos no Linux....Eu tbm gosto de fazer na mão os comandos, mas nada como um shell script para facilitar as coisas... pois vc nunca trabalha sozinho... sempre tem outros na equipe de informática que são meio "zerados" e podem fazer [*****] na hora de executar um comando impróprio.... vc monta o "shell" bonitinho e explica para o estagiário como fazer....hehehehhehehehehee........


echo
echo $dir
echo $kernel
echo $arquitetura
echo
echo "Opcoes:"
echo "1. Adicionar um Usuario"
echo "2. Deletar um Usuario"
echo "3. Modificar senha de Usuario"
echo "4. Listar Usuarios do Samba"
echo "5. Sair"
echo -n "Entre com a opcao desejada => "
read opcao
echo
case $opcao in
1) Adicionar ;;
2) Deletar ;;
3) Modificar ;;
4) Listar ;;
5) exit ;;
*) "Opcao desconhecida." ; echo ; Principal ;;
esac
}

Listar() {
echo "Lista Usuario Samba: "
cat /etc/samba/smbpasswd | awk 'BEGIN{ FS=":" } { print "Usuario:" $1 "\t" "Id:" $2}'|more
read msg
echo "Lista Usuario do Sistema: "
cat /etc/passwd | awk 'BEGIN{ FS=":" } { print "Usuario:" $1 "\t" "Id:" $3}' |more

echo "Pressione qualquer tecla para continuar..."
read msg
Principal
}

Adicionar() {
echo -n "Entre com o login do usuario: "
read login
echo -n "Entre com o nome completo do usuario: "
read nome
echo -n "Entre com o Grupo do usuario: "
read grupo
#echo -n "Entre com o depto do usuáo: "
#read depto
echo -n "Entre com a senha do usuario: "
stty -echo
read senha
stty echo
echo
echo "Mensagens do sistema: "
echo
( echo $grupo ; echo $grupo ) | sudo groupadd -r -f $grupo
sudo /usr/sbin/useradd $login -c "$nome" -g "$grupo" -d /home/user/$login -s /bin/bash; echo "$senha" | sudo /usr/bin/passwd $login --stdin
echo
( echo $senha ; echo $senha ) | sudo smbpasswd -s -a $login
#smbpasswd -a $login $senha
echo
echo "Pressione qualquer tecla para continuar..."
read msg
Principal
}

Modificar() {
echo -n "Entre com o login do usuario para modificar a Senha: "
read login
#echo -n "Entre com o depto do usuáo: "
#read depto
echo -n "Entre com a senha do usuario para Modificar: "
stty -echo
read senha
stty echo
echo
echo "Mensagens do sistema: "
( echo $senha ; echo $senha ) | sudo smbpasswd -s $login
echo "$senha" | sudo /usr/bin/passwd $login --stdin
# echo
# ( echo $senha ; echo $senha ) | sudo smbpasswd -s -a $login
#smbpasswd -a $login $senha
# ( echo $senha ; echo $senha ) | sudo smbpasswd -s -a $login
#smbpasswd -a $login $senha
echo
echo "Pressione qualquer tecla para continuar..."
read msg
Principal
}

Deletar() {
echo -n "Entre com o login do usuario a deletar: "
read login
echo
echo "Mensagens do sistema: "
echo
sudo /usr/bin/smbpasswd -x $login
echo
sudo /usr/sbin/userdel $login
echo
echo "Pressione qualquer tecla para continuar..."
read msg
Principal
}
Principal







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts