shell Ausgabe in Variable

OP #1732768
Lesenswert?

Hallo Forum,

ich arbeite unter Windows mit Eclipse und einem eigenen makefile (ich 
verwende GNU make 3.81)

Nun würde ich gerne einen DOS Befehl ausführen und die Ausgabe die 
normal auf dem Bildschirm erfolgt in eine Variable umleiten.

Meinem Verständis nach sollte das doch wie folgt funktionieren:

DUMMY := $(shell cd)

ich bekomme dann aber die folgende Fehlermeldung und kann mir nicht mehr 
erklären was ich falsch mache

******

DUMMY := C:\Projekte\ProgTest
process_begin: CreateProcess(NULL, DUMMY := C:\Projekte\ProgTest, ...) 
failed.
make (e=2): Das System kann die angegebene Datei nicht finden.

make: *** [all] Error 2

******

Hat mir jemand einen Tip? Vielen Dank

Steffen
Gast #1732788
Lesenswert?

Steffen Walter schrieb:
> DUMMY := $(shell cd)

> DUMMY := C:\Projekte\ProgTest

Ich interpretiere das so, dass "shell" auf deiner Plattform dein 
bevorzugtes CLI aufruft (cmd.exe?). "shell cd" liefert offenbar das 
aktuelle Verzeichnis zurück, scheint also zu klappen.

> make (e=2): Das System kann die angegebene Datei nicht finden.

Wo/wie verwendest du DUMMY?


Gruesse
OP #1732795
Lesenswert?

ja genau so interpretiere ich das auch, ja genau sollte die cmd.exe 
sein, und cd liefert das aktuelle Verzeichnis zurück. Ich habe hier als 
Beispiel "cd" verwendet, Befehl sollte ja egal sein.

Ziel ist dass der Pfad (den er ja auch ausgibt) nachher in der Variablen 
"DUMMY" steht.

Ich verwenden DUMMY momentan sonst noch nirgends. Für mich wirkt das 
immer so als ob er nun versucht einen Befehl "DUMMY" auszuführen, 
anstelle diese als Variabel zu betrachten
OP #1732802
Lesenswert?

danke für den Link, aber auch nach der Beschreibung

contents := $(shell cat foo)

sets contents to the contents of the file `foo', with a space (rather 
than a newline) separating each line.


müsste doch nach dem ausführen von meinem makefile in DUMMY ein Wert 
stehen oder verstehe ich das auch falsch?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren