executar comando ao parar o script

Iniciado por sigur, 18 de Agosto de 2012, 12:54

tópico anterior - próximo tópico

sigur

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.

irtigor


gedit foo
[[ -e bla ]] && rm bla


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

sigur

Citação de: irtigor online 18 de Agosto de 2012, 13:17

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.

irtigor

Qual parte? O "desnecessário"? É que isso não é melhor que


gedit foo
rm bar

sigur

Citação de: irtigor online 18 de Agosto de 2012, 14:38
Qual parte? O "desnecessário"? É que isso não é melhor que


gedit foo
rm bar


Não entendi a frase toda. Bem, a minha dúvida era se, ao colocar no script, duas linhas:
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.

irtigor

Tudo é executado linha por linha (de forma alguma a linha 50 é executada antes da 49 terminar, por exemplo).

sigur

Citação de: irtigor 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).

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.

irtigor

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.

sigur

Citação de: irtigor 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.

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