Change working directory from bash subshell

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
shevegen
Beiträge: 416
Registriert: 30.03.2004 00:32:53

Change working directory from bash subshell

Beitrag von shevegen » 27.11.2011 18:33:29

Hallo.

Ich starte von Bash ein Ruby Skript.

Dieses Ruby Skript ist eine Art Shell, sie liest Input, und führt Anweisungen aus.

Z.bsbp:

cd /tmp

Funktioniert in der Shell und lässt mich nach /tmp wechseln.

Wenn ich diese shell beende, bin ich aber wieder in Bash. Soweit so gut, das Problem
ist das ich dann in Bash bin in dem Verzeichnis, wo ich das Ruby Skript ausgeführt habe.

Beispiel:

In Bash:
> cd /usr
> starte_ruby_script
> cd /tmp # nun sind wir in temp
> exit # beende das ruby script. Wir sind nun wieder in /usr

Was ich nun brauche ist das Bash in ein anderes Verzeichnis wechselt.

Ich weiss das das "normalerweise" nicht möglich ist da Bash eine Subshell
startet.

Ich brauche das aber zu 100%.

Hat wer eine Idee? Es geht wirklich nur um einen Verzeichniswechsel. und
nur für mich.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Change working directory from bash subshell

Beitrag von Cae » 27.11.2011 20:43:23

Code: Alles auswählen

$ cat ruby
#!/ruby/shebang
tue();
cd('/tmp/');
irgendwas();
return $(pwd);
$ cat fnord
#!/bin/sh
pwd
./ruby
cd $?
pwd
$ ./fnord
/home/plonk/
/tmp/
$ 
Vielleicht lässt sich daraus erkennen, was ich meine. Sehr wahrscheinlich wird klar, dass ich keinen Plan von der Ruby-Syntax habe. Jedenfalls gibt das Ruby-Skript sein wd als return-Wert zurück und das Shellscript cedeht dahin.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
shevegen
Beiträge: 416
Registriert: 30.03.2004 00:32:53

Re: Change working directory from bash subshell

Beitrag von shevegen » 28.11.2011 00:40:14

Hallo Cae!

Danke für deine Hilfe!

Leider verstehe ich es nicht ganz. :(

Du meinst ich soll ein shell Skript verwenden und das soll dann die Variable $? verwenden?

cd $?

Hmm aber ich habe nicht ganz verstanden was du da meinst. Ich bin aber froh das das eventuell doch einfach geht, habe gedacht das ich bash patchen muss, und mein C ist noch immer eher mickrig ...

yeti

Re: Change working directory from bash subshell

Beitrag von yeti » 28.11.2011 04:41:38

Schau Dir an wie das bei Debianmc via dessen -P-Option gelöst wird...

Antworten