Estou criando um script de shell e desejo executar um determinado loop while em segundo plano. Normalmente, eu criaria um novo watch.sh
arquivo contendo:
while true; do ...; done
Então, no meu shell script principal, eu faria:
nohup watch.sh >/dev/null 2>&1 &
Minha pergunta é se isso poderia ser feito sem a introdução de um watch.sh
arquivo? Ou seja, é possível executar diretamente um determinado loop while em segundo plano? Algo como o seguinte funcionaria?
while true; do ...; done &
Este é um script de shell, mas posso passar para o bash, se necessário.
Sim, shells tipo sh (incluindo bash/zsh) permitem que você use qualquer bloco (comando composto) da mesma forma que um comando regular, iniciando automaticamente um processo de subshell se necessário – ele pode ser usado como parte de um pipeline, colocado em segundo plano , redirecionado e ainda tem seu próprio 'código de saída' e pode ser usado em condições.