Skript aus C-Programm ausführen



  • Hallo,

    ich habe zwei kurze Anfängerfragen. Ich möchte gerne ein Skript ausführen, welches wie folgt aufgerufen wird:

    myscript info1 info2 > meinedateo.txt
    

    Wie an dem Aufruf zu erkennen ist, möchte ich die Ausgabe in eine Datei umleiten. Bevor das Programm eine Ausgabe liefert, erfordert es noch die Eingabe einer Fließkommazahl (z.B.: 1.4). Wie würde man diesen Programmaufruf aus C heraus durchführen?

    Im Voraus schon einmal herzlichen Dank.



  • Ich würde auf

    System()
    

    (windows.h) tippen.



  • Das Skript läuft natürlich unter Linux!

    Wie kann ich die Eingabe entsprechend füttern??



  • main()
    {
    double d;
    scanf("%lf",&d); /*was auch immer du damit jetzt machen willst*/
    system("myscript bla1 bla2 >bla3");
    return 0;
    }


  • Mod

    Benutze << um die Standardeingabe auf einen vorgegebenen Text zu füttern:

    system("myscript info1 info2 > meinedateo.txt <<ENDE\n1.4\nENDE");
    

    Zum Nachschlagen: Das nennt man here tag oder auch here document. Das ist ein Feature der bash, du musst also gegebenenfalls noch bash als Kommandoprozessor auswählen, falls du einen hast der dies nicht kennt.



  • SeppJ schrieb:

    system("myscript info1 info2 > meinedateo.txt <<ENDE\n1.4\nENDE");

    Naja, wirkt etwas gekünstelt.

    system("echo 1.4|myscript info1 info2 > meinedateo.txt");
    

    macht dies ebenso, läuft sogar unter DOS/Win und braucht auch keinen extra bash oder sowas.


Anmelden zum Antworten