Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Bash Befehle funktionieren nicht in C++!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.04.2013, 14:17 Uhr
~Mr. X
Gast



C++:
#include <iostream>
using namespace std;

int main()
{
    system("read msg");
    
    system("echo $msg"); // Es kommt nicht das Eingegebene raus sondern nichts!!

    system("echo \"msg = $msg\" > msg.txt");
    
    cout << "echo \"msg = $msg\" > msg.txt" << endl;
    return 0;
}


Warum? Warum kann die Shell hier sich nicht die Variable merken, obwohl das normalerweise funktioniert!

Danke im Voraus!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.04.2013, 16:27 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo,

naja jedes "system" ruf eine neue shell auf, d.h die andere shell weiß nichts von deiner Variable.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.04.2013, 17:01 Uhr
~Mr. X
Gast


Gut, hat mich schon weiter gebracht, aber...


C++:
#include <iostream>
using namespace std;

int main()
{
    system("read msg \n echo $msg \n echo \"msg = $msg\" > msg.txt");

    return 0;
}


Der letzte Teil, echo \"msg = $msg\" > msg.txt", außerhalb des Programms funktioniert er, hier aber nicht. Es kommt auch keine Fehlermeldung, ....

Was er bewirkt? In der msg.txt steht dann:

msg = (was ich geschrieben habe)

Aber es tut nicht! Warum?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
14.04.2013, 12:25 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich weiß zwar nicht für was du das so machst und nicht im c++ einliest und die datei schreibst, aber evtl ist das oben ja nur ein vereinfachtes beispiel.

Ansonsten:


C++:
system("read msg ; echo $msg ; echo \"msg = $msg\" > msg.txt");



statt \n probier mal ";" - das trennt in bash ebenfalls die befehle.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.04.2013, 12:48 Uhr
~Mr.X
Gast


Nee funktioniert auch nicht. :-(
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.04.2013, 16:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


was genau passiert denn?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.04.2013, 16:59 Uhr
~Mr. X
Gast


Garnichts. Keine Fehlermeldung, in der msg.txt kein Text.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: