Fórum Ubuntu Linux - PT

Suporte Técnico => Programação e Scripts => Tópico iniciado por: sigur em 18 de Agosto de 2012, 12:54

Título: executar comando ao parar o script
Enviado por: sigur em 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.
Título: Re: executar comando ao parar o script
Enviado por: irtigor em 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)
Título: Re: executar comando ao parar o script
Enviado por: sigur em 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.
Título: Re: executar comando ao parar o script
Enviado por: irtigor em 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
Título: Re: executar comando ao parar o script
Enviado por: sigur em 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.
Título: Re: executar comando ao parar o script
Enviado por: irtigor em 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).
Título: Re: executar comando ao parar o script
Enviado por: sigur em 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.
Título: Re: executar comando ao parar o script
Enviado por: irtigor em 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.
Título: Re: executar comando ao parar o script
Enviado por: sigur em 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.