`exec < somefile` 的行为与 `source somefile` 相同吗

`exec < somefile` 的行为与 `source somefile` 相同吗
$ cat somefile 
sleep 100
$ exec < somefile 
$ sleep 100

除了其调用进程在完成后终止之外,其行为是否exec < somefile与其他相同?source somefile

谢谢。

答案1

效果相似,但行为并不严格相同。

exec < somefile将标准输入连接到somefile,因此 shell 开始从该文件读取,而不是从当前连接的终端读取。 (嗯,至少 bash 是这样,Zsh 的行为有所不同。)实际上,这会导致当前 shell 处理 的内容somefile,就像处理 一样source somefile。一旦耗尽somefile,shell 就会退出。

相关内容