`exec < somefile`은 `source somefile`과 동일하게 동작합니까?

`exec < somefile`은 `source somefile`과 동일하게 동작합니까?
$ cat somefile 
sleep 100
$ exec < somefile 
$ sleep 100

호출 프로세스가 완료 시 종료된다는 점을 제외하면 exec < somefile다른 프로세스와 동일하게 동작합니까?source somefile

감사해요.

답변1

효과는 비슷하지만 동작이 완전히 동일하지는 않습니다.

exec < somefilesomefile쉘이 현재 연결된 터미널 대신 해당 파일에서 읽기를 시작하도록 표준 입력을 연결합니다 . (적어도 bash는 그렇습니다. Zsh는 다르게 동작합니다.) 실제로 이로 인해 현재 쉘은 그것이 무엇이든 somefile마치 처리된 것처럼 처리하게 됩니다 source somefile. 일단 소진되면 somefile쉘이 종료됩니다.

관련 정보