Autor Tópico: Script para limpeza [RESOLVIDO]  (Lida 3992 vezes)

Offline Willdoidao

  • Usuário Ubuntu
  • *
  • Mensagens: 331
  • O que não me mata me deixa mais Forte!!!
    • Ver perfil
Script para limpeza [RESOLVIDO]
« Online: 07 de Novembro de 2007, 12:16 »
Alguem poderia me ajudar e me mostrar o que há de errado com esse script:

Código: [Selecionar]
#!/bin/bash
while : ; do
resposta=$(gdialog --stdout \
--title 'Limpeza do Sistema' \
--menu 'Escolha uma das opções abaixo:' \
0 0 0
1 'Limpeza do Cache' \
2 'Limpeza de Pacotes desnecessarios' \
3 'Sair' )
#Caso seja precionado ESC ou Cancelar
[ $? -ne 0 ] && break
#comandos
case "$resposta" in
1) sudo apt-get autoremove ;;
2) sudo apt-get clean ;;
3) break ;;
esac
done
#Mensagem de Saida
echo 'Will'

Comecei a estudar alguns scripts e montei para estudo mas não está funcionando!!!!









« Última modificação: 08 de Novembro de 2007, 08:08 por Willdoidao »
"Penso 99 vezes e nada descubro. Deixo de pensar, mergulho no silêncio, e a verdade me é revelada." (Albert Einstein)
Abraços Will

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Script para limpeza
« Resposta #1 Online: 07 de Novembro de 2007, 13:55 »
Muito bom Willdoidao, posso dar sugestão? heheheh

Apesar de saber que a senha do usuário administrador não é pedida toda hora quando se usa o sudo (dentro do tempo limite), porque não coloca como pré-requisito que a rotina seja chama com sudo? assim o usuário não tem que passar pelo sudo toda vez.

Apenas a título de exemplo você pode usar algo no estilo abaixo (entenda que o código sugerido é apenas um exemplo, e da para melhorar ele):

Citar
....

# Aviso importante
USUARIO=`id | cut -f2 -d"(" | cut -f1 -d")"`

if test "$USUARIO" != "root"; then
   echo -e "Para executar esta rotina use o sudo."
   exit 9999
fi

....

De qualquer forma parabéns pela iniciativa, ficou ótimo!

[]'s

Cristiano.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Script para limpeza
« Resposta #2 Online: 07 de Novembro de 2007, 14:01 »
Uma pergunta, você não inverteu as opções na hora de executar?

Opção 1: Limpeza do Cache: Esta executando sudo apt-get autoremove
Opção 2: Limpeza de Pacotes desnecessarios: Esta executando sudo apt-get clean
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline Willdoidao

  • Usuário Ubuntu
  • *
  • Mensagens: 331
  • O que não me mata me deixa mais Forte!!!
    • Ver perfil
Re: Script para limpeza
« Resposta #3 Online: 07 de Novembro de 2007, 16:01 »
rsrsrsrsrsr
troquei os comandos, mas vc (clcampos) endenteu o espirito da coisa!!!
Então uma pergunta no seu micro rodou normal??? Pq o meu não foi nem com reza brava!!! Carrega a janela mas não carrega o programa em si.
E o exemplo que vc deu (só para ver se endenti) é caso a pessoa não seja root, vai voltar a mensagem: "Para executar esta rotina use o sudo."
Correto?
"Penso 99 vezes e nada descubro. Deixo de pensar, mergulho no silêncio, e a verdade me é revelada." (Albert Einstein)
Abraços Will

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Script para limpeza
« Resposta #4 Online: 07 de Novembro de 2007, 16:06 »
Bem, o script aqui ficou assim:

Código: [Selecionar]
#!/bin/bash

# Aviso importante
USUARIO=`id | cut -f2 -d"(" | cut -f1 -d")"`

if test "$USUARIO" != "root"; then
   echo -e "Para executar esta rotina use o sudo."
   exit 9999
fi


while : ; do
resposta=$(gdialog --stdout \
--title 'Limpeza do Sistema' \
--menu 'Escolha uma das opções abaixo:' \
0 0 0
1 'Limpeza do Cache' \
2 'Limpeza de Pacotes desnecessarios' \
3 'Sair' )
#Caso seja precionado ESC ou Cancelar
[ $? -ne 0 ] && break
#comandos
case "$resposta" in
1) apt-get clean ;;
2) apt-get autoremove ;;
3) break ;;
esac
done
#Mensagem de Saida
echo 'Will'

Se eu executo ele sem usar o sudo aparece a mensagem, caso contrário aparece o menu, mas sem opções. Vou ver o que aconteceu de errado aqui comigo.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline clcampos

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 10.790
  • .:: User Linux #439596 ::.
    • Ver perfil
Re: Script para limpeza
« Resposta #5 Online: 07 de Novembro de 2007, 16:11 »
O problema aqui era na linha "0 0 0" que foi alterada para "0 0 0 \" e esta tudo ok
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

Offline Willdoidao

  • Usuário Ubuntu
  • *
  • Mensagens: 331
  • O que não me mata me deixa mais Forte!!!
    • Ver perfil
Re: Script para limpeza
« Resposta #6 Online: 07 de Novembro de 2007, 16:49 »
Vou testar hj quando chegar em casa par ver se meu ero foi só o " 0 0 0 ", mas valeu pela ajuda"""""""
"Penso 99 vezes e nada descubro. Deixo de pensar, mergulho no silêncio, e a verdade me é revelada." (Albert Einstein)
Abraços Will