$ 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 就会退出。