
$ cat somefile
sleep 100
$ exec < somefile
$ sleep 100
Verhält es exec < somefile
sich genauso wie source somefile
, außer dass der aufrufende Prozess nach seiner Fertigstellung beendet wird?
Danke.
Antwort1
Die Wirkung ist ähnlich, das Verhalten ist jedoch nicht genau dasselbe.
exec < somefile
verbindet die Standardeingabe mit somefile
, sodass die Shell mit dem Lesen aus dieser Datei beginnt und nicht aus dem Terminal, mit dem sie aktuell verbunden ist. (Zumindest tut das Bash, Zsh verhält sich anders.) Dies führt effektiv dazu, dass die aktuelle Shell den Inhalt von verarbeitet somefile
, wie sie es bei tun würde source somefile
. Sobald es erschöpft ist somefile
, wird die Shell beendet.