다음과 같은 파일에 이 콘텐츠가 있습니다 foo.env
.
foo=bar
그런 다음 해당 파일을 읽고 다음 줄을 셸로 내보내고 싶습니다.
for line in $(cat ./foo.env); do
eval export $line
done
하지만 내가 달릴 때
echo $foo
변수가 비어 있습니다. 내가 뭘 잘못하고 있는 걸까요?
답변1
수정되지 않은 코드
for line in $(cat ./foo.env); do
eval export $line
done
echo $foo
파일에 넣고 sh 또는 bash를 사용하여 실행하면 정확히 원하는 작업이 수행됩니다. 어쩌면 echo $foo
다른 쉘에서 실행 중일까요?
그러나 POSIX 셸은 이 경우를 위해 특별히 내장 함수를 정의합니다.
. ./foo.env
echo $foo