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

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

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

감사해요.

답변1

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

exec < somefile표준 입력을 에 연결하므로 somefile쉘은 현재 연결된 터미널 대신 해당 파일에서 읽기 시작합니다. (글쎄, 적어도 bash는 그렇습니다. Zsh는 다르게 동작합니다.) 이로 인해 현재 쉘이 somefile와 마찬가지로 의 내용을 효과적으로 처리하게 됩니다 source somefile. 모두 소진되면 somefile쉘이 종료됩니다.

관련 정보