Kommando um Programm in einem anderen Pfad auszuführen
Kommando um Programm in einem anderen Pfad auszuführen
Hallo zusammen
Ich suche ein GNU/LINUX Kommando, um ein Programm in einem anderen Pfad ausführen zu können. Das entsprechende Kommando hatte ich auch schon mal benutzt, es gab auch eine Manual-Page dafür. Leider ist mir der Name des Kommandos entfallen.
Ich suche keine Alternativen, wie #bash (cd xyz && Kommando)
Danke
Mauze
Ich suche ein GNU/LINUX Kommando, um ein Programm in einem anderen Pfad ausführen zu können. Das entsprechende Kommando hatte ich auch schon mal benutzt, es gab auch eine Manual-Page dafür. Leider ist mir der Name des Kommandos entfallen.
Ich suche keine Alternativen, wie #bash (cd xyz && Kommando)
Danke
Mauze
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Code: Alles auswählen
mark@pc1:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
mark@pc1:~$ export PATH=$PATH:/your_path_to_heaven && echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/your_path_to_heaven
mark@pc1:~$
Danke für die Antwort, ich suche aber das Kommando und keine Alternativen dafür.
Hintergrund ist das starten eines Progs aus der Shell, das in einem anderen Pfad laufen soll.
Selber schreiben wurde ich das Programm mit C so ungefähr:
main()
{
getopt(....)
..... // neuen Pfad auslesen
......// Parameter für zu starten Prog nach -- auslesen
fork(....) {
....
exec( neues Program )
....
}
}
Hintergrund ist das starten eines Progs aus der Shell, das in einem anderen Pfad laufen soll.
Selber schreiben wurde ich das Programm mit C so ungefähr:
main()
{
getopt(....)
..... // neuen Pfad auslesen
......// Parameter für zu starten Prog nach -- auslesen
fork(....) {
....
exec( neues Program )
....
}
}
Wenn es dir nur um den Pfad geht sollte es reichen wenn du beides in eine Zeile packst ala:
Dann sollte die Variable nur für das gestartet Programm so gesetzt sein..
Code: Alles auswählen
PATH=/my/path:/an/other/path PROGRAM
i support free software: http://www.fsfe.org/en/fellows/esteel
a great free and opensource FPS game: http://nexuiz.com
a great free and opensource FPS game: http://nexuiz.com
- KBDCALLS
- Moderator
- Beiträge: 22456
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Sorry, das ist kein Grund ausse Haut zu fahren. Und wenn ich das richtig interpretiere willst du verhinden das ein neuer Kommandointerpreter gestartet wird. Das ist auch keine Spezialität von Debian. Mit der Bash . Als Beispiel. Dürfte mit anderen auch so funktionieren.
Code: Alles auswählen
. ./base
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Kannst du das erläutern? Ein Prozess läuft nicht in einem Pfad, dieser hat eine PID (Process ID) die er vom Kernel zugewiesen bekommt. Woher dieser Prozess dann "Information" bezieht hat nicht, gar nichts aber auch schon null mit der Art zu tun wie er gestarted wird - ausgenommen der übergabe von Information auf der CLI.Mauze hat geschrieben: Hintergrund ist das starten eines Progs aus der Shell, das in einem anderen Pfad laufen soll.
Im Grunde verstehe ich nicht worauf du hinaus willst.
markus
Hallo zusammen,
ich glaube mich hat hier noch keiner richtig verstanden und bitte darum auch um Entschuldigung. Wie ich schon im ersten Eintrag des Threads geschrieben habe, suche ich einfach nur den Namen des entsprechenden GNU/LINUX Kommandos.
Ich habe den Namen de Kommandos einfach vergessen. Selbst stundenlanges googeln hat mir nicht weiter geholfen, darum habe ich auch die Frage hier unter "Programm gesucht" gestellt.
Ich beschäftige mich schon länger mit DEBIAN, darum sind mir auch reichlich alternativen bekannt. Im konkreten Fall brauche ich für die Entwicklung eines embedded Linux halt genau diese Funktionalität.
Ich finde es halt nur eben unsinnig, dass ich ein kleines Tool schreiben müsste, wenn es diese Funktionalität bereits im Betriebssystem gibt. Master für mein embedded linux os soll halt Debian sein. Trotz einiger Schwierigkeiten verwende ich keinerlei andere Sourcen, als die, die zu Debian gehören. Um Konsequent zu sein darf ich mir natürlich auch keine eigenen Programme schreiben, zu mindestens für das Betriebssystem. Die eigentliche Anwendung hat logischerweise eigene Sourcen und ein CVS.
Grüsse Mauze
ich glaube mich hat hier noch keiner richtig verstanden und bitte darum auch um Entschuldigung. Wie ich schon im ersten Eintrag des Threads geschrieben habe, suche ich einfach nur den Namen des entsprechenden GNU/LINUX Kommandos.
Ich habe den Namen de Kommandos einfach vergessen. Selbst stundenlanges googeln hat mir nicht weiter geholfen, darum habe ich auch die Frage hier unter "Programm gesucht" gestellt.
Ich beschäftige mich schon länger mit DEBIAN, darum sind mir auch reichlich alternativen bekannt. Im konkreten Fall brauche ich für die Entwicklung eines embedded Linux halt genau diese Funktionalität.
Ich finde es halt nur eben unsinnig, dass ich ein kleines Tool schreiben müsste, wenn es diese Funktionalität bereits im Betriebssystem gibt. Master für mein embedded linux os soll halt Debian sein. Trotz einiger Schwierigkeiten verwende ich keinerlei andere Sourcen, als die, die zu Debian gehören. Um Konsequent zu sein darf ich mir natürlich auch keine eigenen Programme schreiben, zu mindestens für das Betriebssystem. Die eigentliche Anwendung hat logischerweise eigene Sourcen und ein CVS.
Grüsse Mauze
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
vielleicht fällt es Dir wieder ein, wenn Du es siehst...?
http://www.linuxdevcenter.com/linux/cmd/
http://www.linuxdevcenter.com/linux/cmd/
Also jeder Process hat unter UNIX/LINUX ein Environment, siehe auch "man 7 environ". Dieses Environment enthält auch Angaben über den aktuellen Pfad (PWD) der zur Zeit gültig ist. Ich möchte einfach hier einen anderen Wert stehen haben, ohne Umwege über die shell gehen zu müssen.meandtheshell hat geschrieben:Kannst du das erläutern? Ein Prozess läuft nicht in einem Pfad, dieser hat eine PID (Process ID) die er vom Kernel zugewiesen bekommt. Woher dieser Prozess dann "Information" bezieht hat nicht, gar nichts aber auch schon null mit der Art zu tun wie er gestarted wird - ausgenommen der übergabe von Information auf der CLI.Mauze hat geschrieben: Hintergrund ist das starten eines Progs aus der Shell, das in einem anderen Pfad laufen soll.
Im Grunde verstehe ich nicht worauf du hinaus willst?.
Selbst ein kleines Programm wie ls macht seine Ausgabe in Bezug auf den aktuellen Pfad, wenn als Parameter kein absolutes Verzeichnis angegeben wird.
Mauze
Danke ub13,ub13 hat geschrieben:vielleicht fällt es Dir wieder ein, wenn Du es siehst...?
http://www.linuxdevcenter.com/linux/cmd/
aber ich habe vorher schon folgendes in /bin /sbin /usr/bin und /usr/sbin gemacht:
Code: Alles auswählen
for i in `ls`; do man $i >> kalle; done; vi kalle
Mauze
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Dann mach das im code - einfach der environment variable die für dich wichtig ist den wert der wichtig ist geben and you're done. Gerade bei einem embedded Zeug ist das der bessere Weg, da weniger Speicher draufgeht als auf ein third-party binary zurückzugreifen und dann das herumlinken - bäääMauze hat geschrieben:Ich möchte einfach hier einen anderen Wert stehen haben, ohne Umwege über die shell gehen zu müssen.
- man 3 putenv oder
- man 3 setenv
markus