erstes Drehbuch:Warum die Pipe das aktuelle Arbeitsverzeichnis zurücksetzt?
$ { mkdir dir; cd dir; pwd; } | cat; pwd;
./dir
.
Zweite Skript:
$ { mkdir dir; cd dir; pwd; }; pwd;
./dir
./dir
Warum diese | cat
Auswirkungen auf aktuelles Verzeichnis hat? Und wie löst man es? Ich brauche das erste Skript, das genauso funktioniert wie das zweite. Ich möchte nicht cat
mein aktuelles Verzeichnis zurück zu .
ändern.
http://stackoverflow.com/questions/5760640/left-side-of-pipe-is-the-subshell, Ihre 'cd' läuft in einer Subshell. – Mat
Im zweiten Skript ist es auch in der Subshell – yegor256
@ yegor256 Nein, in der zweiten ist es ** nicht ** in einer Subshell. – devnull