Pular para o conteúdo

script nao funciona... [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar
01 02

1. script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 11:37h

Ola pessoal sou novo aqui e gostaria de uma ajuda com um script, preciso fazer um script basico com um menu e informações do sistema e tal...

Fiz esse :

#!/bin/bash
Principal()
{
clear
echo "Menu Principal"
echo "------------------------------------------"
echo "Opções:"
echo
echo "1. Listar diretorios"
echo "2. Mostrar os processos do sistema"
echo "3. Mostrar informações da memoria RAM"
echo "4. Mostrar informações detalhadas dos processos"
echo "5. Mostrar informações da CPU"
echo "6. Mostrar informações de usuarios logados"
echo "7. Sair"
echo
echo -n "Qual a opção desejada? "
read opcao

case $opcao in
1) Listar ;;
2) MostraProcesso ;;
3) MostrarEspaco ;;
4) Informacoes ;;
5) MostrarCPU ;;
6) MostarUsuarios ;;
7) exit ;;
*) "Opção desconhecida." ; echo ; Principal ;;
esac
}


Listar()
{
read -p "Informe o diretorio que quer listar" dir
ls -lia $dir | less
echo "Pressione ENTER para continuar ..."
read _ENTER

Principal
}

MostraProcesso()
{
ps aux | more
echo "Pressione ENTER para continuar ..."
read _ENTER

Principal
}


MostrarEspaco()
{
free | more
echo "Pressione ENTER para continuar ..."
read _ENTER

Principal
}


Informacoes()
{
top
echo "Para sair pressione a tecla q"


Principal
}


MostrarCPU()
{
cat /proc/cpuinfo
echo "Pressione ENTER para continuar ..."
read _ENTER

Principal
}


MostrarUsuarios()
{
w
echo "Pressione ENTER para continuar ..."


Principal
}

Principal



Mais não funciona, poderiam me ajudar ?

Responder tópico

2. Re: script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 11:44h

Coloque a sua função Principal() no final do script, pois a mesma chama outras funções que ainda não foram lidas no código.

Outro detalhe é vc corrigir o último ítem do seu Menu:

Troque esta linha

*) "Opção desconhecida." ; echo ; Principal ;;
Por esta:

*) echo "Opção desconhecida."; Principal ;;
Boa sorte!

3. Re: script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 11:45h

Onde está dando o erro?


Execute seu script assim:

bash -x ./nome_script

Assim vc verá o que está acontecendo na execução do seu script e poderá encontrar o problema...

4. Re: script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 11:59h

alexandregms escreveu:

Coloque a sua função Principal() no final do script, pois a mesma chama outras funções que ainda não foram lidas no código.

Outro detalhe é vc corrigir o último ítem do seu Menu:

Troque esta linha

*) "Opção desconhecida." ; echo ; Principal ;;


Por esta:

*) echo "Opção desconhecida."; Principal ;;


Boa sorte!
Amigo não entendi a parte da que vc disse para colocar a função principal no final...
poderia editar e me mostrar como ficaria?

Sou muito leigo...

5. Re: script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 12:03h

Bom eu testei agora no ubuntu 10.04 e funcionou tranquilo

6. Re: script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 12:06h

danniel-lara escreveu:

Bom eu testei agora no ubuntu 10.04 e funcionou tranquilo
Sim ele roda o menu, mais não "acha" as opções...


7. Re: script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 12:06h

Eu passei algumas dicas que poderiam funcionar, mas vc poderia debugar o script com "sh -x" como o rai3mb disse.

Poste para nós o erro que fica mais fácil de revolvermos o seu problema em específico!

9. Re: script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 21:11h

Executa com o bash -x, assim vai ver onde está dando erro e caso não entender posta a saída que ajudamos..

10. Re: script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 22:54h

O que especificamente não funcionou? O menu não apareceu? executei aqui e ele apareceu, basta torná-lo executável: chmod +x arquivo.sh

11. Re: script nao funciona... [RESOLVIDO]

Enviado em 03/04/2012 - 23:11h

Salve o danado e faça alguns testes. Vai perceber que é o mesmo mas com alguns ajustes na usabilidade.


#!/bin/bash
# file: jefe_menu.sh
# name: Aplicativo que executa vários opções do sistema GNU/Linux
# author: jehxtreme aka Não tenho a menor ideia ;)
# version: alfa 0.2
# more:
# objetives: Utilitário de uso geral para coletar informações.
# ----------------------------------------------------------------------------#
# XXX: Indique detalhes importantes em locais do código como alerta.
# FIXME: Mostre pontos onde você sabe que tem problemas e precisa de ajustes.
# TODO: Faça anotações sobre o que precisa ser feito no ponto. Features.
# ----------------------------------------------------------------------------
# Roadmap e changelog:
# 01 - Funcionar menus.
# 02 - Novos melhoramentos na usabilidade.
# ----------------------------------------------------------------------------


function mostramenu()
{
clear
echo "===================================================================="
echo " Menu Principal"
echo "===================================================================="
echo ""
echo "1. Listar diretorios"
echo "2. Mostrar os processos do sistema"
echo "3. Mostrar informações da memoria RAM"
echo "4. Mostrar informações detalhadas dos processos"
echo "5. Mostrar informações da CPU"
echo "6. Mostrar informações de usuarios logados"
echo "7. Sair"
echo ""
if [ "$1" ]; then echo -n "Escolha a opção:" ; fi
}

function _menu()
{
clear
while true
do
mostramenu normal
read escolha
case "$escolha" in
1) Listar ;;
2) MostraProcesso ;;
3) MostrarEspaco ;;
4) Informacoes ;;
5) MostrarCPU ;;
6) MostarUsuarios ;;
7) Sair ;;
*) Desconhecida ;;
esac
done
}
function Sair()
{
clear
echo -e " Obrigado por usar o sistema $0 VOLTE SEMPRE !!! "
read -t 2
exit
}

Listar()
{
clear
read -p "Informe o diretorio que quer listar" dir
ls -lia $dir | less
echo "Pressione ENTER para continuar ..."
read _ENTER
}

MostraProcesso()
{
ps aux | more
echo "Pressione ENTER para continuar ..."
read _ENTER
}


MostrarEspaco()
{
free | more
echo "Pressione ENTER para continuar ..."
read _ENTER
}


Informacoes()
{
top
echo "Para sair pressione a tecla q"
}


MostrarCPU()
{
cat /proc/cpuinfo
echo "Pressione ENTER para continuar ..."
read _ENTER
}


MostrarUsuarios()
{
w
echo "Pressione ENTER para continuar ..."
}

function Desconhecida()
{
echo -n " Opção inválida o zé mané. Não sabe ler não é ? "
read -t 5
}

function main()
{
_menu # Menu principal
}

main "${@#}"

exit



Agora dormir zzzzzzzz

http://vivaolinux.com.br/topico/Off-Code-Cafe/Acordando-com-Led-Zeppelin/?pagina=16#188

12. Re: script nao funciona... [RESOLVIDO]

Enviado em 04/04/2012 - 08:38h

AprendiNoLinux escreveu:

Salve o danado e faça alguns testes. Vai perceber que é o mesmo mas com alguns ajustes na usabilidade.


#!/bin/bash
# file: jefe_menu.sh
# name: Aplicativo que executa vários opções do sistema GNU/Linux
# author: jehxtreme aka Não tenho a menor ideia ;)
# version: alfa 0.2
# more:
# objetives: Utilitário de uso geral para coletar informações.
# ----------------------------------------------------------------------------#
# XXX: Indique detalhes importantes em locais do código como alerta.
# FIXME: Mostre pontos onde você sabe que tem problemas e precisa de ajustes.
# TODO: Faça anotações sobre o que precisa ser feito no ponto. Features.
# ----------------------------------------------------------------------------
# Roadmap e changelog:
# 01 - Funcionar menus.
# 02 - Novos melhoramentos na usabilidade.
# ----------------------------------------------------------------------------


function mostramenu()
{
clear
echo "===================================================================="
echo " Menu Principal"
echo "===================================================================="
echo ""
echo "1. Listar diretorios"
echo "2. Mostrar os processos do sistema"
echo "3. Mostrar informações da memoria RAM"
echo "4. Mostrar informações detalhadas dos processos"
echo "5. Mostrar informações da CPU"
echo "6. Mostrar informações de usuarios logados"
echo "7. Sair"
echo ""
if [ "$1" ]; then echo -n "Escolha a opção:" ; fi
}

function _menu()
{
clear
while true
do
mostramenu normal
read escolha
case "$escolha" in
1) Listar ;;
2) MostraProcesso ;;
3) MostrarEspaco ;;
4) Informacoes ;;
5) MostrarCPU ;;
6) MostarUsuarios ;;
7) Sair ;;
*) Desconhecida ;;
esac
done
}
function Sair()
{
clear
echo -e " Obrigado por usar o sistema $0 VOLTE SEMPRE !!! "
read -t 2
exit
}

Listar()
{
clear
read -p "Informe o diretorio que quer listar" dir
ls -lia $dir | less
echo "Pressione ENTER para continuar ..."
read _ENTER
}

MostraProcesso()
{
ps aux | more
echo "Pressione ENTER para continuar ..."
read _ENTER
}


MostrarEspaco()
{
free | more
echo "Pressione ENTER para continuar ..."
read _ENTER
}


Informacoes()
{
top
echo "Para sair pressione a tecla q"
}


MostrarCPU()
{
cat /proc/cpuinfo
echo "Pressione ENTER para continuar ..."
read _ENTER
}


MostrarUsuarios()
{
w
echo "Pressione ENTER para continuar ..."
}

function Desconhecida()
{
echo -n " Opção inválida o zé mané. Não sabe ler não é ? "
read -t 5
}

function main()
{
_menu # Menu principal
}

main "${@#}"

exit




Agora dormir zzzzzzzz

http://vivaolinux.com.br/topico/Off-Code-Cafe/Acordando-com-Led-Zeppelin/?pagina=16#188


Cara muito obrigado!
De coração, você salvou minha vida!

Muito obrigado a todos que me ajudaram e responderam o topico!


01 02

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder