mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik shell Ausgabe in Variable


Autor: Steffen Walter (surrounder)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: No (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht statt dem Programm in der Shell aufrufen, eine Batchdatei, 
die dir alles erledigt?

Autor: Steffen Walter (surrounder)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich bräuchte aber das was ich da zurück bekomme im makefile um es dann 
beim linken zu verwenden. Deshalb kann ich das nicht komplett in einer 
Batch machen.

Autor: maker (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: maker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehe gerade, dass "shell" eine interne Funktion ist, FYI:

http://www.chemie.fu-berlin.de/chemnet/use/info/ma...

Autor: Steffen Walter (surrounder)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Steffen Walter (surrounder)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Evtl. ein Problem mit den Backslashes. Versuch's mal mit 
Anführungszeichen um das $(shell).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.