서로 다른 애플리케이션 간에 변수를 공유하는 방법

서로 다른 애플리케이션 간에 변수를 공유하는 방법

foo다른 애플리케이션에서 변수를 업데이트하는 방법은 무엇입니까 ?

$ cat app1.sh

#!/bin/bash
//foo can be changed from the internet, but for example, I give it foo=1
export foo=1
while true
do
   echo "$foo+2"
   sleep 5
done

두 번째 애플리케이션은 var를 다음과 같이 변경합니다.

$ cat app2.sh

#!/bin/bash
export foo=$foo+100

unsetwile 루프는 이전 값일 수 없으며 다른 응용 프로그램에서 새 값을 가져올 수 없습니다. 그렇다면 또는 같은 것을 foo사용하지 않고 while 루프에서 foo var를 업데이트하는 방법은 무엇입니까 ?databasefile

답변1

Unix는 프로그램이 다른 프로그램에 속한 메모리를 변경하는 것을 방지하기 위해 메모리 보호 모델을 사용합니다.

서로 다른 프로그램 간에 데이터를 공유하려면 프로세스 간 통신을 사용해야 합니다. 그러한 방법 중 일부는 다음과 같습니다.

  • 파일 시스템의 파일
  • 관로
  • FIFO(파이프 변형)
  • 신호
  • 공유 메모리
  • 소켓

Bash는 이들 중 처음 4개만 직접 지원합니다.

관련 정보