`exec

`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シェルは終了します。

おすすめ記事