파일에서 스크립트를 실행하는 데 문제가 있습니다. 명령줄에 입력할 때
PATH=$PATH:/home/
그런 다음 PATH
적절하게 변경합니다. 하지만 이 파일을 실행하면:
#!/bin/sh
#provided by me
PATH=$PATH:/home/
echo "done"
exit 0
done
인쇄되었지만 PATH
변경되지 않았습니다. 왜 이런 일이 발생합니까?
답변1
환경 변수 변경 사항은 현재 프로세스와 후속 하위 프로세스에 적용되지만 상위 프로세스에는 적용되지 않습니다. 따라서 스크립트를 실행해도 해당 스크립트가 실행되는 셸의 환경 변수에는 영향을 주지 않습니다. source
내장된 쉘 스크립트를 사용해야 합니다 .
. 즉
. /path/to/script
이로 인해 현재 셸은 하위 프로세스를 실행하는 대신 파일의 명령을 실행합니다.