Autor Tópico: executar comando ao parar o script  (Lida 3467 vezes)

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
executar comando ao parar o script
« Online: 18 de Agosto de 2012, 12:54 »
Pessoal, eu fiz um arquivo .sh que abre um editor de texto já com um monte de coisa digitada, pra que eu não precise ficar abrindo o modelo esalvando com outro nome, pra manter o modelo original.

Então, quando preciso, apenas uso no terminal e chamo um modelo novinho, criado na hora com um monte de echo.

Pois bem, mas eu queria fazer o seguinte: ao fechar o editor, o terminal volta ao início, ou seja, volto pro $. Eu queria, ao fechar o editor, antes de parar o script, queria remover alguns arquivos temporários criados.

Mas não posso colocar depois da linha 'gedit bla.txt' linhas com 'rm bla.log', pois esses temporários só serão criados quando eu mexer no meu arquivo. Então, teria que ter uma espécie de pausa no script.

Como fazer? Alguma ajuda? Valeu.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: executar comando ao parar o script
« Resposta #1 Online: 18 de Agosto de 2012, 13:17 »
Código: [Selecionar]
gedit foo
[[ -e bla ]] && rm bla

(sim, você já viu algumas vezes, e nesse cenário parece complemente desnecessário)

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: executar comando ao parar o script
« Resposta #2 Online: 18 de Agosto de 2012, 14:12 »
Código: [Selecionar]
gedit foo
[[ -e bla ]] && rm bla

(sim, você já viu algumas vezes, e nesse cenário parece complemente desnecessário)

Obrigado irtigor. Só não entendi seu comentário entre ().
Valeu.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: executar comando ao parar o script
« Resposta #3 Online: 18 de Agosto de 2012, 14:38 »
Qual parte? O "desnecessário"? É que isso não é melhor que

Código: [Selecionar]
gedit foo
rm bar

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: executar comando ao parar o script
« Resposta #4 Online: 18 de Agosto de 2012, 14:43 »
Qual parte? O "desnecessário"? É que isso não é melhor que

Código: [Selecionar]
gedit foo
rm bar

Não entendi a frase toda. Bem, a minha dúvida era se, ao colocar no script, duas linhas:
Código: [Selecionar]
gedit bla
rm bla.*

se esse rm só seria executado depois de fechar o gedit ou se ele seria executado logo após abrir o gedit. Queria colocar os comandos de rm no script, pois são vários arquivos auxiliares que eu quero remover.

Valeu.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: executar comando ao parar o script
« Resposta #5 Online: 18 de Agosto de 2012, 14:53 »
Tudo é executado linha por linha (de forma alguma a linha 50 é executada antes da 49 terminar, por exemplo).

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: executar comando ao parar o script
« Resposta #6 Online: 18 de Agosto de 2012, 15:02 »
Tudo é executado linha por linha (de forma alguma a linha 50 é executada antes da 49 terminar, por exemplo).

Ah, então tá, agora concordo que basta colocar o rm depois. Valeu. Pensei que, uma vez aberto o gedit, a linha já teria sido executada por completo e a próxima seria então executada. Mas pra executar tudo, precisa fechar o gedit. Valeu.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: executar comando ao parar o script
« Resposta #7 Online: 18 de Agosto de 2012, 20:41 »
Você pode ter esse efeito com "gedit foo &", porque traduzindo o comando é "passe o que está antes do sinal tironiano para um subshell", tarefa que não deve levar mais que alguns milissegundos.

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: executar comando ao parar o script
« Resposta #8 Online: 18 de Agosto de 2012, 20:44 »
Você pode ter esse efeito com "gedit foo &", porque traduzindo o comando é "passe o que está antes do sinal tironiano para um subshell", tarefa que não deve levar mais que alguns milissegundos.

Entendi. Muito obrigado pela explicação. Está funcionando bem. Só preciso corrigir outras coisas, referentes ao gtk. Mas isso é outra história.