Script para limpeza [RESOLVIDO]

Iniciado por Willdoidao, 07 de Novembro de 2007, 12:16

tópico anterior - próximo tópico

Willdoidao

Alguem poderia me ajudar e me mostrar o que há de errado com esse script:

#!/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!!!!









"Penso 99 vezes e nada descubro. Deixo de pensar, mergulho no silêncio, e a verdade me é revelada." (Albert Einstein)
Abraços Will

clcampos

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!

clcampos

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!

Willdoidao

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

clcampos

Bem, o script aqui ficou assim:


#!/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!

clcampos

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!

Willdoidao

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