쉘을 사용할 때 (내가 아는 한) 단일 행을 포함하는 쉘 스크립트가 source somefile
상위 쉘에 영향을 미치는 것은 불가능합니다(물론 스크립트 자체가 소스 코드가 아닌 한).
source
셸이 아닌 실행 파일(예: C로 작성된)이 효과적으로 파일이 될 수 있고 마치 source somefile
명령줄에 입력하는 것처럼 셸에서 모든 것을 사용할 수 있는지 궁금합니다 .
답변1
$ type source
source is a shell builtin
그것이 가능한 것입니다 (원래 더 긴 질문에 더 의미가 있습니다).
아니요, 외부 프로그램에서 동작을 복제할 수 없습니다 source
(입력 버퍼링 트릭을 활용하지 않는 한). 이는 동일합니다 cd
. 쉘만이 자체 내부 상태를 수정할 수 있으므로 쉘 내장 기능만 쉘의 내부 상태를 수정할 수 있습니다.