Comecei um loop em uma sessão for
interativa . bash
Para esta questão, podemos assumir que o loop era algo como
for i in dir/*; do
program "$i"
done > log
O comando demora muito mais do que o esperado e ainda é executado. Como posso ver o progresso atual do for
loop em execução.
Não Soluções:
- Olhe
log
.
Não funciona porque:program
espera-se que seja executado silenciosamente. Você pode pensarprogram
como um validador. Se o loop for concluído sem nenhuma saída, estou feliz. - Pare o laço. Adicione algum tipo de indicação de progresso (por exemplo
echo "$i"
). Inicie o loop novamente.
Não funciona porque: O loop já funcionou por horas. Eu não quero jogar fora todo o tempo e energia investidos na corrida atual. Presumo que tudo funcione bem. Estou apenas curioso e quero saber o progresso atual. - Ctrl+ Zthen
set -x; fg
Não funciona porque:bash
não continua o loop ao usarfg
. Depoisfg
que apenas o comando atual/próximo dentro do loop for executado, o loop será encerrado. Você pode tentar você mesmo usandofor i in {1..200}; do printf '%s ' $i; /usr/bin/sleep 0.5; done
.