환경 변수없이 쉘 스크립트 실행 상속합니다. 이것을 막을 방법이

아시다시피, 새로 실행되는 셸 스크립트는 환경 변수를 상속합니다. 이것을 막을 방법이 있습니까? (변수 상속없이 쉘 실행)



답변

스크립트를 env -i실행하기 전에 환경을 지우는 스크립트를 접두어로 사용할 수 있습니다 .

env -i sh test.sh

보낸 사람 man env:

-i, --ignore-environment
              start with an empty environment

왜 당신이 이것을하고 싶은지 모르겠습니다 …


답변

한 가지 가능성은 (아직 추악한 것처럼 보이지만) :

exec -c $SCRIPT빈 환경에서 $ SCRIPT를 시작합니다. ( man bash검색 참조 exec \[-cl\]).


답변

내가 아는 한 대답은 “아니오”입니다. 스크립트 자체에서 환경 변수를 무시할 수 있습니다. 스크립트 실행이 완료되면 환경 변수의 값이 원래 값으로 다시 전환되어야합니다. 스크립트를 자식 프로세스로 실행해야 할 수도 있습니다 : $ this.script.sh & 환경 변수를 원래 값으로 재설정하기 위해 스크립트를 실행할 때마다 셸에서 로그 아웃하지 않아도됩니다.

편집하다:

초기 포스터부터는 불가능하다고 생각합니다.


답변