Estou tendo um script bash cujo comportamento é aproximadamente.
#!/bin/bash
if some_condition ; then
echo please enter some integer
read a
else
a=3
fi
# here 'd like to switch in the background
while true ; do
echo beep
sleep $a
done
Portanto, o script solicita uma entrada e executa algumas tarefas em segundo plano.
No momento em que iniciar o script, responda a todas as perguntas / prompts que possam aparecer, pressione CTRL-Z
e digite bg
.
Então, sempre que eu quiser que o script pare, eu digito
fg ; CTRL-C
Posso fazer isso programaticamente (colocando em segundo plano) de dentro do mesmo script.
A paragem será sempre um passo manual
Você pode executar o loop em um subshell executado em segundo plano: