S
Shark2150
Grünschnabel
Hallo erstmal,
dies ist mein erster Beitrag in diesem Forum und eines Vorweg: ich würde mich durchaus als Unixeinsteiger bezeichnen, daher möge man mir bitte meine Unwissenheit verzeihen
Ich besuche eine Vorlesung über UNIX (Solaris im speziellen) und auf einem Übungsblatt eine Frage die ich nicht so recht beantworten kann. Ich soll sagen was das Kommando (in der ksh):
"{ cd /bin; ls; cd /etc; ls } | wc -l; pwd"
ausgibt und ich soll erklären warum. Nun hab ich es einfach mal ausprobiert und gemerkt, das wc -l die Zeilen zählt, die durch die in {}-Klammern ausgeführten Befehle hervorgerufen werden und dass das folgende "pwd" das Directory ausgibt aus welchem der Befehl aufgerufen wurde. Also ist es so als wären die Kommandos in den Klammern nie ausgeführt worden - da man sich ja immer noch im selben Verzeichnis befindet. Auf der Suche nach dem Sinn der {}-Klammern habe ich ein Buch zu Rate gezogen, dass mir folgendes sagt:
(cmd;cmd) Run cmd;cmd in a subshell.
{cmd;cmd} Like (cmd;cmd) without a subshell.
Heißt das nicht, dass die Kommandos ganz normal, also in der selben Shell ausgeführt werden müßten? Bin irgendwie ein wenig verwirrt und wäre über eine Antwort dankbar,
Shark2150
dies ist mein erster Beitrag in diesem Forum und eines Vorweg: ich würde mich durchaus als Unixeinsteiger bezeichnen, daher möge man mir bitte meine Unwissenheit verzeihen
Ich besuche eine Vorlesung über UNIX (Solaris im speziellen) und auf einem Übungsblatt eine Frage die ich nicht so recht beantworten kann. Ich soll sagen was das Kommando (in der ksh):
"{ cd /bin; ls; cd /etc; ls } | wc -l; pwd"
ausgibt und ich soll erklären warum. Nun hab ich es einfach mal ausprobiert und gemerkt, das wc -l die Zeilen zählt, die durch die in {}-Klammern ausgeführten Befehle hervorgerufen werden und dass das folgende "pwd" das Directory ausgibt aus welchem der Befehl aufgerufen wurde. Also ist es so als wären die Kommandos in den Klammern nie ausgeführt worden - da man sich ja immer noch im selben Verzeichnis befindet. Auf der Suche nach dem Sinn der {}-Klammern habe ich ein Buch zu Rate gezogen, dass mir folgendes sagt:
(cmd;cmd) Run cmd;cmd in a subshell.
{cmd;cmd} Like (cmd;cmd) without a subshell.
Heißt das nicht, dass die Kommandos ganz normal, also in der selben Shell ausgeführt werden müßten? Bin irgendwie ein wenig verwirrt und wäre über eine Antwort dankbar,
Shark2150