Я хочу запустить процесс в фоновом режиме, используя &
,
и предоставить процессу доступ к данным, используемым в процессе переднего плана.
Вот пример:
A() {
echo "$a"
}
a="abc"
while true; do echo "$(A)"; sleep 10; done &
a="xyz"
Результатом фонового процесса всегда является «abc». Не имеет значения, какое значение помещается в a
после запуска фоновой задачи. В этом примере я хочу, чтобы первая итерация выводила «abc»,
и через 10 секунд на выходе должно быть «xyz».
Я хочу, чтобы фоновый процесс вел себя как поток в Windows. Поток имеет полный доступ ко всем данным (но не должен изменять данные, которые могут повлиять на пользовательский интерфейс). Возможно ли это?
Лучший способ сделать это — просто использовать файлы. Другие подходы включают именованные каналы и (в некоторых оболочках) сопроцессы.