백그라운드 프로세스에서 포그라운드 데이터에 액세스

백그라운드 프로세스에서 포그라운드 데이터에 액세스

백그라운드에서 실행되는 프로세스를 사용 &하고 해당 프로세스가 포그라운드 프로세스에서 사용되는 데이터에 액세스하도록 하고 싶습니다.

예는 다음과 같습니다.

A() {
  echo "$a"
}
a="abc"
while true; do echo "$(A)"; sleep 10; done &
a="xyz"

백그라운드 프로세스의 출력은 항상 "abc"입니다. a백그라운드 작업이 시작된 후 백그라운드 작업에 어떤 값을 입력하는지는 중요하지 않습니다. 이 예에서는 첫 번째 반복에서 "abc"를 출력하고 10초 후에 출력은 "xyz"가 되어야 합니다.

Windows에서 스레드처럼 동작하는 백그라운드 프로세스를 원합니다. 이 스레드는 모든 데이터에 대한 전체 액세스 권한을 갖습니다(그러나 UI에 영향을 미치는 데이터는 변경할 수 없습니다). 가능합니까?

답변1

이를 수행하는 가장 좋은 방법은 파일을 사용하는 것입니다. 다른 방법으로는 명명된 파이프와 (일부 셸의 경우) 공동 프로세스가 있습니다.

관련 정보