O efeito é semelhante, mas o comportamento não é exatamente o mesmo.
exec < somefile
conecta a entrada padrão a somefile
, portanto, o shell começa a ler esse arquivo em vez do terminal ao qual está conectado no momento. (Bem, pelo menos o bash faz, o Zsh se comporta de maneira diferente.) Isso resulta efetivamente no shell atual processando o conteúdo de somefile
, como faria com source somefile
. Depois de esgotar somefile
, o shell sai.