A melhor maneira de fazer isso é simplesmente usar arquivos. Outras abordagens incluem pipes nomeados e (em algumas conchas) coprocessos.
Eu quero executar um processo em segundo plano, usando &
,
e fazer com que o processo acesse os dados usados no processo de primeiro plano.
Aqui está um exemplo:
A() {
echo "$a"
}
a="abc"
while true; do echo "$(A)"; sleep 10; done &
a="xyz"
A saída do processo em segundo plano é sempre "abc". Não importa qual valor é colocado em a
depois que a tarefa em segundo plano é iniciada. No exemplo, quero que a primeira iteração produza "abc",
e 10 segundos depois a saída deve ser "xyz".
Eu quero ter um processo em segundo plano para se comportar como um thread no Windows. O segmento tem acesso total a todos os dados (mas não deve alterar os dados que afetariam a interface do usuário). Isso é possível?
A melhor maneira de fazer isso é simplesmente usar arquivos. Outras abordagens incluem pipes nomeados e (em algumas conchas) coprocessos.