In .command aktuellen Pfad aufrufen

gernero

Neues Mitglied
Thread Starter
Dabei seit
30.03.2013
Beiträge
5
Punkte Reaktionen
0
Hallo liebe Community,

Nachdem ich gestern und heute schon einige Zeit auf Google verbracht habe, aber einfach nichts brauchbares (und funktionsfähiges) gefunden habe, stelle ich nun einfach selber die Frage:

Ich habe beispielsweise eine Datei a.out in einem Ordner liegen und möchte erreichen, dass ich diese durch ein Doppelklick auf eine Datei.command ausführe.
Wenn ich nun den folgenden Code benutze klappt das auch wunderbar.
Code:
/Users/bla/blu/a.out

Ich möchte nun aber, dass ich die beiden Datein umher verschieben kann und es dann trotzdem noch klappt. Also habe ich es probiert mit dem folgenden, was leider nicht geklappt hat (auch verschiedene Variationen nicht)

Code:
test = 'pwd'
cd $test
./a.out

Kann mir vielleicht jemand helfen und sagen wie es richtig ist?

Schönen Gruß

P.s.: Ich hoffe ich bin im richtigen Forum gelandet, bin aber über Google auf einen ähnlichen Beitrag in diesem Bereich gestoßen.

P.p.s.: Mit dem 2. code kommt übrigens folgende Fehlermeldung

Code:
mbp-xxx:~ xxx$ /Users/bla/programmcode/datei.command ; exit;
/Users/bla/programmcode/datei.command: line 1: test: =: unary operator expected
/Users/bla/programmcode/datei.command: line 3: ./a.out: No such file or directory
logout
 

oneOeight

Aktives Mitglied
Dabei seit
23.11.2004
Beiträge
63.797
Punkte Reaktionen
13.016
da dürfen keine leerzeichen zwischen sein:
test=`pwd`

und du hast die falschen anführungszeichen genommen.
 

gernero

Neues Mitglied
Thread Starter
Dabei seit
30.03.2013
Beiträge
5
Punkte Reaktionen
0
Danke, damit ist die Zeile schonmal korrekt. Aber die 3. Zeile gibt immernoch den gleichen Fehler aus, weder "./a.out" noch "/a.out" oder "a.out" funktioniert. Hat da jemand eine Idee was falsch ist?
 

oneOeight

Aktives Mitglied
Dabei seit
23.11.2004
Beiträge
63.797
Punkte Reaktionen
13.016
als ./a.out öffnet a.out im aktuellen pfad, /a.out im obersten verzeichnis und nur a.out klappert den kompletten $PATH ab.
wenn es also einen fehler gibt, liegt an keinem der orte a.out ...

betrachtet man den sinn gehalt von
test=`pwd`
cd $test

dann merkt man was?
du machst ein cd auf das verzeichnis in dem du gerade bist...
 

gernero

Neues Mitglied
Thread Starter
Dabei seit
30.03.2013
Beiträge
5
Punkte Reaktionen
0
Ja also müsste ja "./a.out" klappen, aber das tut es eben nicht. Und die Datei existiert auf jeden fall und heißt auch "a.out".
 

gernero

Neues Mitglied
Thread Starter
Dabei seit
30.03.2013
Beiträge
5
Punkte Reaktionen
0
ich habe mal in die dritte zeile "mkdir test" gemacht und der Ordner wurde in meinem Benutzer Ordner erstellt. Die Pfadänderung scheint also das Problem.

Edit:

Ich habe jetzt mal bisschen ausprobiert, "pwd" ist einfach der Hauptpfad und nicht der Pfad in dem die .command Datei ist. Nur wie komme ich dann an diesen Pfad stattdessen?
 

oneOeight

Aktives Mitglied
Dabei seit
23.11.2004
Beiträge
63.797
Punkte Reaktionen
13.016
ich hab das hier gerade mal getestet mit einem command und pwd.
wenn im terminal sh test.command mache, kriege ich einen anderen pfad als wenn ich das .command doppel klicke, da ist das ganze eine ebene höher...


probier mal
dirname $0
 

gernero

Neues Mitglied
Thread Starter
Dabei seit
30.03.2013
Beiträge
5
Punkte Reaktionen
0
Ja habe es gerade auch mal übers terminal probiert mit sh datei.command, dann klappt es ohne Probleme ...

Dein Tipp mit dirname $0 hat leider auch nicht geholfen.
 
Oben Unten