
$ cat somefile
sleep 100
$ exec < somefile
$ sleep 100
呼び出しプロセスが完了時に終了することを除いて、exec < somefile
と同じように動作しますか?source somefile
ありがとう。
答え1
効果は似ていますが、動作は厳密には同じではありません。
exec < somefile
は標準入力を に接続するのでsomefile
、シェルは現在接続されている端末ではなく、そのファイルから読み取りを開始します。(少なくとも bash はそうしますが、Zsh は異なる動作をします。) 実質的に、これにより現在のシェルは のsomefile
場合と同様に の内容を処理することになりますsource somefile
。 を使い果たすとsomefile
、シェルは終了します。