bash 스크립트에서 변수를 생성하고 터미널이 닫힐 때까지(영구적으로는 아님) 해당 변수를 터미널에 유지하려고 합니다. export
이것이 나에게 필요한 것이라고 생각했지만 작동하지 않습니다.
#!/bin/bash
export VARIABLE='this is a test'
그런 다음 스크립트를 실행합니다.
$ ./test.sh
그런 다음 동일한 터미널에서:
$ echo "$VARIABLE"
그러나 그것은 빈 응답을 생성합니다.
답변1
무슨 일이에요
새 프로세스를 시작하고 (프로세스에서) 환경 변수를 설정한 다음 프로세스를 종료합니다. 변수가 사라집니다.
무엇을 해야할지
Bash 스크립트를 가져오되 실행하지는 마세요. 예를 들어 다음 중 하나
source ./test.sh
. ./test.sh
답변2
스크립트를 실행할 때 변수를 설정하는 하위 쉘을 생성합니다. 스크립트 실행이 끝나면 변수가 삭제됩니다. 현재 쉘에서 사용하려면 다음과 같이 스크립트를 실행하십시오.
. ./test.sh
답변3
source
(또는 ) 외에도 .
쉘 기능을 사용할 수도 있습니다.
이 시도:
test_sh() {
export VARIABLE='this is a test'
...
}
시험:
printf "VARIABLE=%s\n" "${VARIABLE}"
VARIABLE=
.
test_sh
printf "VARIABLE=%s\n" "${VARIABLE}
VARIABLE=this is a test