msoliver
(usa Debian)
Enviado em 10/05/2024 - 19:18h
Minions escreveu:
[quote]msoliver escreveu:
Minions, use o 'wait',
bem mais pratico....
#!/usr/bin/env bash
arq='receitas.txt';
read -p "Abrir ${arq} [sn]: " -n1 resp
[ ${resp,} = "s" ] && kwrite ${arq} & pid=$!
wait $pid
echo -e "\nfechou ${arq}"
Se tiver varios
processo ativo do
editor de texto não funciona. Vai cai no echo -e "\nfechou ${arq}"
Ex: Na foto tem 2 gedit abertos, ai cai no
"fechou ${arq}" mesmo sem vc fecha o arquivo ${arq} .
Não tem como matar só o arquivo sem matar o editor de texto?
Boa noite Minions e quem mais acompanha este tópico.
Testei aqui, (Debian 15.5).
Com vários processos em execução (kwrite),
Só exibe a mensagem quando o processo que foi iniciado pelo script/linha de comando, é encerrado.
Visto que o '$pid' é passado como parâmetro para o 'wait';
Em suma, o "wait" aguarda o encerramento do processo especificado no parâmetro.
Foram abertos, um a um, clicando, abrir com, kwrite:
pgrep -a 'kwrite'
14809 kwrite [tdeinit] /home/adminq/testes_01.txt
14812 kwrite [tdeinit] /home/adminq/testes_02.txt
14816 kwrite [tdeinit] /home/adminq/testes_03.txt
14819 kwrite [tdeinit] /home/adminq/testes_04.txt
14823 kwrite [tdeinit] /home/adminq/testes_05.txt
--------------------------------------------------------------
executado na linha de comando:
kwrite testes_00.txt & pid=$!;echo -e "pid:$pid\n";jobs -l;wait $pid
SAÍDA:
[1] 14827
$pid:
14827
[1]+ 14827 Executando kwrite testes_00.txt &
-----------------------------------------------------------------------
executando novamente o comando:(outro terminal)
pgrep -a 'kwrite'
É incluída a linha:
14827 kwrite testes_00.txt
----------------------------------------------------------------------
Só mostrou a linha abaixo qdo fechei testes_00.txt
[1]+ Concluído kwrite testes_00.txt
----------------------------------------------------------------------
----------------------------------------------------------------------
É isso.
Att.: Marcelo Oliver