Hi Leutz! ich hab so ein kleines script geschrieben: # /bin/sh cd /home/roman/foo/.; dir -al; Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis. Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir... Wie geht denn dat? Vielen Dank! Roman -- http://www.jesus.de http://www.thehope.de http://www.ec-thueringen.de
Hallo Roman, * Roman schrieb am 21.08.2003:
Hi Leutz!
ich hab so ein kleines script geschrieben:
# /bin/sh
cd /home/roman/foo/.; dir -al;
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis. Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir...
Wie geht denn dat?
Hm. Vielleicht die cd-Zeile mit # auskommentieren?? Grüße, Tom
Hallo, Roman! Roman Langolf wrote:
ich hab so ein kleines script geschrieben:
# /bin/sh
cd /home/roman/foo/.; dir -al;
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis. Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir... Willst Du Dir die Tipparbeit von "dir -al" ersparen? Dann würde ich vorschlagen, Du machst Dich erstmal mit dem alias Befehl Deiner Shell vertraut, ist viel sinnvoller, als für jede Abkürzung eine neue Shell mit entsprechendem Befehl zu starten! Den alias Befehl kannst Du, je nach Shell, in .login oder .cshrc oder .bashrc oder .profile oder entsprechenden Dateien reinschreiben, so dass er jedesmal in jeder Shell zur Verfügung steht.
Viele Grüße Jochen
hi Jochen Jochen Schrader schrieb:
Hallo, Roman!
Roman Langolf wrote:
ich hab so ein kleines script geschrieben:
# /bin/sh
cd /home/roman/foo/.; dir -al;
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis. Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir...
Willst Du Dir die Tipparbeit von "dir -al" ersparen?
nein ich will mir "cd /home/roman/foo/; dir -al" ersparen.
Dann würde ich vorschlagen, Du machst Dich erstmal mit dem alias Befehl Deiner Shell vertraut, ist viel sinnvoller, als für jede Abkürzung eine neue Shell mit entsprechendem Befehl zu starten! Den alias Befehl kannst Du, je nach Shell, in .login oder .cshrc oder .bashrc oder .profile oder entsprechenden Dateien reinschreiben, so dass er jedesmal in jeder Shell zur Verfügung steht.
achso, ja, alias. Ich probier mal gleich aus... Roman -- http://www.jesus.de http://www.thehope.de http://www.ec-thueringen.de
Roman Langolf wrote:
Jochen Schrader schrieb:
Roman Langolf wrote:
ich hab so ein kleines script geschrieben:
# /bin/sh
cd /home/roman/foo/.; dir -al;
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis. Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir...
Willst Du Dir die Tipparbeit von "dir -al" ersparen?
nein ich will mir "cd /home/roman/foo/; dir -al" ersparen. Ob alias hier Dir hilft, kann ich jetzt nicht sagen. Aber ich habe das Gefühl, wir haben alle noch nicht ganz verstanden, was Du von Deinem Skript erwartest. Vielleicht hilft uns ein kleines Beispiel, so in der Art. Inhalt von /home/roman/foo: bla.txt blubb.txt
romanspc# ls bla.txt blubb.txt romanspc# pwd /home/roman/foo romanspc# script.sh bla.txt blubb.txt Sollte aber liefern .... Ok? Dann können wir weiterhelfen! Viele Grüße Jochen
Hallo Jochen, hi Liste! Jochen Schrader schrieb:
Roman Langolf wrote:
Jochen Schrader schrieb:
Roman Langolf wrote:
[...]
nein ich will mir "cd /home/roman/foo/; dir -al" ersparen.
Ob alias hier Dir hilft, kann ich jetzt nicht sagen. Aber ich habe das Gefühl, wir haben alle noch nicht ganz verstanden, was Du von Deinem Skript erwartest. Vielleicht hilft uns ein kleines Beispiel, so in der Art. Inhalt von /home/roman/foo: bla.txt blubb.txt
romanspc# ls bla.txt blubb.txt romanspc# pwd /home/roman/foo romanspc# script.sh bla.txt blubb.txt
Sollte aber liefern ....
Ok? Dann können wir weiterhelfen!
gut, wenn's sein muss ;) mein Script heisst blumbla und beinhaltet: # /bin/sh cd /home/roman/foo/.; dir -al; roman@linux:~> blumbla roman@linux:~/foo> foo1.txt foo2.txt foo3.txt roman@linux:~/foo> Also er wechselt sich in foo und zeigt mir verzeichniss an Ist das jetzt klar? Gruß, Roman -- http://www.jesus.de http://www.thehope.de http://www.ec-thueringen.de
Am Donnerstag, 21. August 2003 22:57 schrieb Roman Langolf:
gut, wenn's sein muss ;)
mein Script heisst blumbla
und beinhaltet:
# /bin/sh
cd /home/roman/foo/.; dir -al;
roman@linux:~> blumbla roman@linux:~/foo> foo1.txt foo2.txt foo3.txt roman@linux:~/foo>
Also er wechselt sich in foo und zeigt mir verzeichniss an Ist das jetzt klar?
Das ist schon klar! Aber was erwartest du von dem Script? Bitte formuliere doch deine Frage etwas deutlicher. Gruß Achim
Jochen Schrader schrieb:
Roman Langolf wrote:
Jochen Schrader schrieb:
Roman Langolf wrote:
ich hab so ein kleines script geschrieben:
# /bin/sh
cd /home/roman/foo/.; dir -al;
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis. Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir...
Willst Du Dir die Tipparbeit von "dir -al" ersparen?
nein ich will mir "cd /home/roman/foo/; dir -al" ersparen.
Ob alias hier Dir hilft, kann ich jetzt nicht sagen.
Na doch es hilft, wieso hab ich es nicht gleich ausprobiert... roman@linux:~>alias foo="cd /home/roman/foo;ls -al" roman@linux:~>foo foo1.txt foo2.txt foo3.txt roman@linux:~/foo> Vielen Dank an alle! Roman -- http://www.jesus.de http://www.thehope.de http://www.ec-thueringen.de
Roman Langolf wrote:
Jochen Schrader schrieb:
Ob alias hier Dir hilft, kann ich jetzt nicht sagen.
Na doch es hilft, wieso hab ich es nicht gleich ausprobiert... Das ist interessant, unter meiner FreeBSD tcsh funktioniert der alias Befehl nicht so! Aber wenns bei Dir klappt, ist ja alles gut!
Viele Grüße und schönen Abend noch Jochen
Hi Roman,
ich hab so ein kleines script geschrieben:
# /bin/sh
cd /home/roman/foo/.; dir -al;
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis. Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir...
Nach Ausführen des Scriptes willst Du im Verzeichnis /home/roman/foo stehen? Das geht IMHO nicht. Um das Script auszuführen, wird eine neue Shell gestartet; deren Arbeitsverzeichnis wird auf /home/roman/foo/ gesetzt. Nachdem das Script beendet wurde ist wieder die aufrufende Shell aktiv. Deren Arbeitverzeichnis wurde aber nicht geändert. -- Gruß, Alex
Am Donnerstag, 21. August 2003 21:42 schrieb Roman Langolf:
# /bin/sh
cd /home/roman/foo/.; dir -al;
Bitte nicht dir, sondern ls verwenden, dir ist DOS, in Linux höchstens als alias implementiert und damit abhängig von der Environment steht das nicht zur Verfügung.
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis.
Ja, was hast Du erwartet?
Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir...
Du willst das aktuelle Verzeichnis angezeigt kriegen? Dann las das cd weg. Oder klappt der Verzeichniswechsel nicht? -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Hallo Manfred, Manfred Tremmel schrieb:
Am Donnerstag, 21. August 2003 21:42 schrieb Roman Langolf:
# /bin/sh
cd /home/roman/foo/.; dir -al;
Bitte nicht dir, sondern ls verwenden, dir ist DOS, in Linux höchstens als alias implementiert und damit abhängig von der Environment steht das nicht zur Verfügung.
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis.
Ja, was hast Du erwartet?
Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir...
Du willst das aktuelle Verzeichnis angezeigt kriegen? Dann las das cd weg. Oder klappt der Verzeichniswechsel nicht?
Ich will das er mich in das Verzeichnis bringt und dann gleich ein ls ausführt.... gruß, roman -- http://www.jesus.de http://www.thehope.de http://www.ec-thueringen.de
Am Donnerstag, 21. August 2003 22:32 schrieb Roman Langolf:
Ich will das er mich in das Verzeichnis bringt und dann gleich ein ls ausführt....
Das tut er auch, allerdings geht der Verzeichniswechsel mit Beendigung des Scripts wieder verloren. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Roman Langolf wrote:
Ich will das er mich in das Verzeichnis bringt und dann gleich ein ls ausführt.... Und dann in diesem Verzeichnis stehen bleibt? Das geht so nicht, da Du in Deinem Skript eine neue Shell (einen neuen Prozess) öffnest, diese wird nach Ende des Skripts wieder geschlossen (Prozess stirbt). Damit kehrst Du zur ursprünglichen Shell wieder zurück, die nun im Ursprungsverzeichnis stehen geblieben ist. Auch der alias Befehl hilft Dir nicht weiter, der tut genau das selbe, wie Dein Skript. Im Moment fällt mir nichts ein, was Dir jetzt weiterhelfen kann, schließlich müsstest Du das Arbeitsverzeichnis der aufrufenden Shell ändern. Sorry!
Viele Grüße Jochen
Jochen Schrader schrieb:
Roman Langolf wrote:
Ich will das er mich in das Verzeichnis bringt und dann gleich ein ls ausführt....
Und dann in diesem Verzeichnis stehen bleibt?
bingo!
Das geht so nicht, da Du in Deinem Skript eine neue Shell (einen neuen Prozess) öffnest, diese wird nach Ende des Skripts wieder geschlossen (Prozess stirbt). Damit kehrst Du zur ursprünglichen Shell wieder zurück, die nun im Ursprungsverzeichnis stehen geblieben ist. Auch der alias Befehl hilft Dir nicht weiter, der tut genau das selbe, wie Dein Skript. Im Moment fällt mir nichts ein, was Dir jetzt weiterhelfen kann, schließlich müsstest Du das Arbeitsverzeichnis der aufrufenden Shell ändern. Sorry!
macht nichts, es ist auch nicht so schlimm, ich denk' ich hab jetzt ne Lösung gefunden. ich mach ein Link auf das Verzeichnis und dann halt manuel "ls" und fertig is es... Gruß Roman -- http://www.jesus.de http://www.thehope.de http://www.ec-thueringen.de
* Thus spoke Roman Langolf Hallo,
Jochen Schrader schrieb:
Roman Langolf wrote:
Ich will das er mich in das Verzeichnis bringt und dann gleich ein ls ausführt....
Und dann in diesem Verzeichnis stehen bleibt?
bingo!
Das geht so nicht, da Du in Deinem Skript eine neue Shell (einen neuen Prozess) öffnest, diese wird nach Ende des Skripts wieder geschlossen (Prozess stirbt). Damit kehrst Du zur ursprünglichen Shell wieder zurück, die nun im Ursprungsverzeichnis stehen geblieben ist. Auch der alias Befehl hilft Dir nicht weiter, der tut genau das selbe, wie Dein Skript. Im Moment fällt mir nichts ein, was Dir jetzt weiterhelfen kann, schließlich müsstest Du das Arbeitsverzeichnis der aufrufenden Shell ändern. Sorry!
drlinux$~>alias foo="cd /bla/blasel/fub"; export foo sG -K.R.- -- Karl Reichert PGP KEY AVIABLE Schlüssel-ID:5F062A47 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ http://www.ON-TOPIC.de email: karl.reichert@on-topic.de +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Am Don, 2003-08-21 um 23.09 schrieb Jochen Schrader:
Im Moment fällt mir nichts ein, was Dir jetzt weiterhelfen kann, schließlich müsstest Du das Arbeitsverzeichnis der aufrufenden Shell ändern. Sorry!
Ich bin mit Shellskripten nicht vertraut, aber kann man nicht mit der Variable $PWD arbeiten? Oder steht die nur für Abfragen mittels "pwd" und Ähnliches bereit und eine Änderung der Variable hat keine Auswirkung auf das derzeitige Verzeichnis der aktuellen Shell? MfG, Thomas B.
Hallo Jochen, hallo Roman, hallo Leute, Am Donnerstag, 21. August 2003 23:09 schrieb Jochen Schrader:
Roman Langolf wrote:
Ich will das er mich in das Verzeichnis bringt und dann gleich ein ls ausführt....
Und dann in diesem Verzeichnis stehen bleibt? Das geht so nicht, [... wegen Subshell ...]
Auch der alias Befehl hilft Dir nicht weiter, der tut genau das selbe, wie Dein Skript.
Doch, alias hilft weiter, denn ein alias scheint nach meinen Tests nicht in einer Subshell zu laufen ;-) cb@tux:~> alias mydir='cd /home/cb/fontlinge/cvs/ ; ls -l' cb@tux:~> mydir [Dateilistung von /home/cb/fontlinge/cvs/ weggekürzt] cb@tux:~/fontlinge/cvs> Ach so: Möglicherweise ist für Dich auch die Umgebungsvariable $CDPATH interessant (siehe man bash). Ich erklär es nicht lange, sondern füge einfach mal ein kleines Beispiel ein. Achte mal auf das jeweilige Arbeitsverzeichnis ;-) cb@tux:~/fontlinge/cvs> export CDPATH=~:~/fontlinge/cvs cb@tux:~/fontlinge/cvs> cd internet /home/cb/internet cb@tux:~/internet> cd current /home/cb/fontlinge/cvs/current cb@tux:~/fontlinge/cvs/current> Gruß Christian Boltz --
http://www.bahn.de hat auch einen Routenplaner [...] auch für Fahrrad und zu Fuß, wenn die Entfernung nicht zu weit ist. Nur, was bedeutet "2. Klasse" auf dem Fahrrad? ;-) [> Bernd Brodesser und Ralf Cirksena in suse-linux]
Am Donnerstag, 21. August 2003 22:32 schrieb Roman Langolf:
Hallo Manfred,
Manfred Tremmel schrieb:
Am Donnerstag, 21. August 2003 21:42 schrieb Roman Langolf:
# /bin/sh
cd /home/roman/foo/.; dir -al; [...] Ich will das er mich in das Verzeichnis bringt und dann gleich ein ls ausführt....
alias homex = 'cd /home/x; ls -al'
HTH, Andreas.
--
Andreas Scherer
Hallo Roman, Du hast ja schon einiges bekommen, ich wollte aber noch mal die Zusammenhänge etwas klar machen, damit man es auch verstehen kann. Zunächst aber eine kleine Kritik an Deinem Skript: * Roman Langolf schrieb am 21.Aug.2003:
ich hab so ein kleines script geschrieben:
# /bin/sh
cd /home/roman/foo/.;
Was soll der . am Ende bringen? Jedes Verzeichnis hat als Unterverzeichnis das Verzeichnis . Aber es ist nichts anderes als ein Hardlink auf sich selber. Mit cd /hom/roman/foo/. wechselst Du in jenes Verzeichnis, aber es ist genau das Gleiche als ob Du nach /home/roman/foo wechseltest; denn genau das machst Du. Also kannst Du gleich cd /home/roman/foo sagen. Auch das ; ist überflüssig. Ein Befehl wird durch Zeilenumbruch oder ; abgeschlossen. Nur eins von beiden ist nötig. Wenn da ein Zeilenumbruch steht, braucht man nicht noch ein Semikolon.
dir -al;
Der Hinweis auf ls hast Du ja schon mehrfach bekommen.
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis. Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir...
Wie geht denn dat?
Deine shell, die das Prompt ausgibt und Du was einegeben kannst ist ein Prozeß. Dieser Prozeß hat wie alle anderen auch eine Menge Kenndaten. Dazu gehören z.B das Enviroment, oder auch das Arbeitsverzeichnis. Wenn man nur ein Programm oder auch ein skript aufruft, so wird als erstes ein neuer Prozeß erzeugt. Dies geschieht dadurch, daß alles dupliziert wird. Sowohl das eigentliche Programm, hier also die bash, als auch alle Kenndaten, wie das Arbeitsverzeichnis, der Besitzer und die Gruppe, effektiver Besitzer und effektive Gruppe des Prozesses, das kotrollierende Terminal, die Umgebungsvariablen, werden kopiert. Lediglich die Prozeßnummer (PID) und die Elternprozeßnummer (PPID) sind andere. Dabei ist die Elternprozeßnummer (PPID) die Prozeßnummer (PID) des aufrufenden Prozesses. Als nächstes wird das Programm oder skript aufgerufen. Dazu wird im Kindprozeß das Programm überschrieben. Im Falle eines skripts mit dem Interpreterprogramm, hier die bash. Die ganzen Kenndaten bleiben aber gleich, auch das Arbeitsverzeichnis. Nun wird Dein Skript ausgeführt. Darin wird das Arbeitsverzeichnis verändert. Wohlgemerkt im Kindprozeß, der Elterprozeß bleibt davon natürlich unberührt. Als nächstes wird ls aufgerufen. Dazu ruft der Kindprozeß seinerseits einen Kindprozeß auf. ls erbt das neue Arbeitsverzeichnis. Nach der Ausgabe beendet sich ls. Und auch der Prozeß der Dein Skript bearbeitet beendet sich, da nichts mehr folgt. Der Elterprozeß bekommt das mit und gibt wieder ein Prompt aus, da es sich um eine interaktive Shell handelt. Aber zwischenzeitlich hat sich an diesem Prozeß nichts verändert, auch nicht das Arbeisverzeichnis. Du bist wieder da, wo Du gewesen bist. Das Arbeitsverzeichnis kann man somit nur aus dem Prozeß selber heraus verändern, nicht aber über einen Kindprozeß. Man kann nicht die Kenndaten eines anderen Prozesses ändern. Etwas ganz anderes ist es, wenn Deine interaktive shell, also der Prozeß, in dem Du Deine Befehle eingibst, selber das skript ausführt. Dies kannst Du machen, indem Du das skript mit source oder . aufrufst. Also etwa source skript oder . skript, falls Dein skript skript heißt. Dann führt die bash selber das skript aus, und die Änderung des Arbeitsverzeichnisses wird wirksam. Die bessere Lösung ist in Deinem Falle aber sicherlich ein alias oder das setzen von CDPATH. Allerdings muß auch das in der interaktiven shell selber geschehen. Die interaktive shell führt bevor sie inteaktiv wird ein paar skripte aus, falls es sie gibt. Hierbei wird unterschieden, ob es sich um eine Loginshell handelt oder um eine normale interaktive shell. Dazu habe ich schon mehrfach was geschrieben, schau bitte ins Archiv oder in man bash, und dort nach INVOCATION suchen. Bernd
Bernd Brodesser schrieb:
Hallo Roman,
Du hast ja schon einiges bekommen, ich wollte aber noch mal die Zusammenhänge etwas klar machen, damit man es auch verstehen kann. Zunächst aber eine kleine Kritik an Deinem Skript:
* Roman Langolf schrieb am 21.Aug.2003:
ich hab so ein kleines script geschrieben:
# /bin/sh
cd /home/roman/foo/.;
Was soll der . am Ende bringen? Jedes Verzeichnis hat als Unterverzeichnis das Verzeichnis . Aber es ist nichts anderes als ein Hardlink auf sich selber. Mit cd /hom/roman/foo/. wechselst Du in jenes Verzeichnis, aber es ist genau das Gleiche als ob Du nach /home/roman/foo wechseltest; denn genau das machst Du. Also kannst Du gleich cd /home/roman/foo sagen.
Stimmt, ich hab's aber so nur zu Test-zwecken ausprobiert, und dann per cut&past in die Liste geschickt...
Auch das ; ist überflüssig. Ein Befehl wird durch Zeilenumbruch oder ; abgeschlossen. Nur eins von beiden ist nötig. Wenn da ein Zeilenumbruch steht, braucht man nicht noch ein Semikolon.
aha, das wusste ich nicht... ich kenn so von PHP (auch Perl und C?) dass da nach jeder Anweisung/Befehl ein ; gebraucht wird...
dir -al;
Der Hinweis auf ls hast Du ja schon mehrfach bekommen.
ja.... meine uralte Gewöhung ;)
Nun geht das ding hin und zeig mir Inhalt von dem Verzeichnis. Ich möcht aber das er direkt den Pfad in dem ich mich grade befinde wechselt und dann kommt dir...
Wie geht denn dat?
Deine shell, die das Prompt ausgibt und Du was einegeben kannst ist ein Prozeß. Dieser Prozeß hat wie alle anderen auch eine Menge Kenndaten. Dazu gehören z.B das Enviroment, oder auch das Arbeitsverzeichnis. Wenn man nur ein Programm oder auch ein skript aufruft, so wird als erstes ein neuer Prozeß erzeugt. Dies geschieht dadurch, daß alles dupliziert wird. Sowohl das eigentliche Programm, hier also die bash, als auch alle Kenndaten, wie das Arbeitsverzeichnis, der Besitzer und die Gruppe, effektiver Besitzer und effektive Gruppe des Prozesses, das kotrollierende Terminal, die Umgebungsvariablen, werden kopiert. Lediglich die Prozeßnummer (PID) und die Elternprozeßnummer (PPID) sind andere. Dabei ist die Elternprozeßnummer (PPID) die Prozeßnummer (PID) des aufrufenden Prozesses.
Als nächstes wird das Programm oder skript aufgerufen. Dazu wird im Kindprozeß das Programm überschrieben. Im Falle eines skripts mit dem Interpreterprogramm, hier die bash. Die ganzen Kenndaten bleiben aber gleich, auch das Arbeitsverzeichnis. Nun wird Dein Skript ausgeführt. Darin wird das Arbeitsverzeichnis verändert. Wohlgemerkt im Kindprozeß, der Elterprozeß bleibt davon natürlich unberührt. Als nächstes wird ls aufgerufen. Dazu ruft der Kindprozeß seinerseits einen Kindprozeß auf. ls erbt das neue Arbeitsverzeichnis. Nach der Ausgabe beendet sich ls. Und auch der Prozeß der Dein Skript bearbeitet beendet sich, da nichts mehr folgt. Der Elterprozeß bekommt das mit und gibt wieder ein Prompt aus, da es sich um eine interaktive Shell handelt. Aber zwischenzeitlich hat sich an diesem Prozeß nichts verändert, auch nicht das Arbeisverzeichnis. Du bist wieder da, wo Du gewesen bist.
Das Arbeitsverzeichnis kann man somit nur aus dem Prozeß selber heraus verändern, nicht aber über einen Kindprozeß. Man kann nicht die Kenndaten eines anderen Prozesses ändern.
Etwas ganz anderes ist es, wenn Deine interaktive shell, also der Prozeß, in dem Du Deine Befehle eingibst, selber das skript ausführt. Dies kannst Du machen, indem Du das skript mit source oder . aufrufst. Also etwa source skript oder . skript, falls Dein skript skript heißt. Dann führt die bash selber das skript aus, und die Änderung des Arbeitsverzeichnisses wird wirksam.
Die bessere Lösung ist in Deinem Falle aber sicherlich ein alias oder das setzen von CDPATH. Allerdings muß auch das in der interaktiven shell selber geschehen. Die interaktive shell führt bevor sie inteaktiv wird ein paar skripte aus, falls es sie gibt. Hierbei wird unterschieden, ob es sich um eine Loginshell handelt oder um eine normale interaktive shell. Dazu habe ich schon mehrfach was geschrieben, schau bitte ins Archiv oder in man bash, und dort nach INVOCATION suchen.
Danke für eine gute Erklärung! Viele Grüße! Roman -- http://www.jesus.de http://www.thehope.de http://www.ec-thueringen.de
participants (11)
-
Achim Lehmkuhl
-
Alexander Veit
-
Andreas Scherer
-
B.Brodesser@t-online.de
-
Christian Boltz
-
Jochen Schrader
-
Karl Reichert
-
Manfred Tremmel
-
Roman Langolf
-
Thomas Bitschnau
-
Thomas Preissler