Neues Terminal + Befehl ausführen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,


    Ich möchte A) ein neues Terminal öffnen und B) dort alle weiteren Befehle ausführen.

    A) Geht einwandfrei mit system("lxterminal")

    B) Alle im Programm folgenden Befehle werden aber noch im ersten Terminal ausgeführt :(.


    Vielen Dank für Hilfe
    Verrain

  • z.B. sudo befehl1 & befehl2
    (öffnet ein neues Terminal soweit ich weiß)


  • Zu A): "ein neues Terminal öffnen" ... wo? Unter LXDE? -> lxterminal ausführen.
    Zu B): dann wähl die tty Session aus ;) => Google Suche nach: C++ Debian tty session select

    Ich blicke es noch nicht ganz. Das habe ich rausgefunden:

    1) In ein Terminal außerhalb der eigenen Sitzung zu schreiben ohne das Zusatzprogramm screen nicht möglich.
    2) Bin ich direkt auf dem Pi, kann ich mit Konsolenbefehl >/dev/pts/N (wobei N für die entsprechende Konsole steht) auf einer anderen Konsole ausgeben.
    3) chvt und fgconsole begreife ich noch nicht... fgconsole gibt bei mir überall(!) eine 1 aus. Wenn ich chvt 1 oder chvt 2 eingebe passiert nichts.

    Kannst du mir zu 3) erläutern, wie das funktionieren soll?

  • Ich wuerde ersteinmal einen GANZ grossen Schritt zuruecktreten und in Frage stellen, was du da warum ueberhaupt machst.

    Aus deinen anderen Posts wissen wir, dass du Kommandozeilenprogramme von C aus aufrufst, und deren Ausgabe mehr oder minder ungefiltert wieder ausspuckst. Und das dir die Darstellung da nicht gefaellt.

    Die Loesung kann nun aber weder sein, dass du das Terminal verbreiterst, noch das du einfach ein neues aufmachst.

    Ein Kommandozeilenprogramm muss sich an das Terminal, dass ihm zur Verfuegung steht anpassen. Denn entweder kann das Terminal nicht breiter werden (ohne grafische Oberflache ist das fest eingestellt), oder ich *will* nicht, dass das Terminal mehr Platz einraeumt, als ich ihm zugestanden habe (nichts nervt mehr, als Programme, die meinen Bildschirm uebernehmen wollen).

    Meines Erachtens wirst du dich mit den Daten, die deine Unterprogramme ausspucken ernsthaft auseinandersetzen muessen, diese zerpfluecken, und angepasst auf dein Terminal ausgeben. Alles andere ist ein unangenehmer Workaround.

    Mit C hast du dir dort allerdings die schlimmste aller denkbaren Sprachen ausgesucht.

    Wie waere es, wenn du mal beschreibst, was eigentlich deine Aufgabe ist? Dann koennten wir bessere Tipps geben. Bisher sieht es sehr nach "Shell Scripting in C" aus. Das ist wie Origami mit der Wasserpumpenzange. Geht irgendwie. Wird beliebig haesslich.

  • @deets:

    Ja, das mit dem Zerpflücken ist mit auch bewusst. Da werde ich mich dran setzen müssen, auch wenn es stressig ist und python, dass so viel schöner und einfacher kann. Aber immerhin habe ich ja dann eine Funktion, die ich immer wieder verwenden kann, denn ich werde wohl noch öfters Tabellen ausgeben.
    Dieser Thread hat allerdings nichts damit zu tun.

    An dieser Stelle mag ich nur eine executable aufrufen (mit Doppelklich von der GUI) und dabei ein weiteres Terminal öffnen in dem ich dem Benutzer Anweisungen hineinschreibe, die im ersten Terminal keinen Platz finden (aufgrund durchgängiger Datenausgabe). Ich bau gerade eine Art raspberrygestütztes Maskottchen, dass letztendlich im Rahmen eines Projekts durch viele Hände und Ortschaften geht. Da muss am Ende alles an der Bedienung "idiotensicher" sein :D. Deswegen der ganze Aufwand ^^.

    Deswegen nochmal die Frage bevor es untergeht:

    3) chvt und fgconsole begreife ich noch nicht... fgconsole gibt bei mir überall(!) eine 1 aus. Wenn ich chvt 1 oder chvt 2 eingebe passiert nichts.

    Kannst du mir zu 3) erläutern, wie das funktionieren soll?
    Automatisch zusammengefügt:
    Achja, dass C für Stringlisten die schlechteste Sprache ist, ist mir auch bewusst. Vielleicht sattel ich da auch nochmal um. Andererseits ist das ja wie gesagt etwas, dass nur einmal richtig geschrieben werden muss und dann immer wieder verwendet werden kann. Vielleicht mach ich mir da auch mal die Mühe, wenn die Zeit da ist :)

    Einmal editiert, zuletzt von Verrain (24. Mai 2016 um 23:24)

  • Einen Grund, warum es C sein muss sehe ich da jetzt - bei beiden Problemen - immer noch nicht.

    Wenn du eine GUI vorraussetzen kannst, und ein Maskottchen baust (also so etwas wie Clippy?!?) - dann wuerde ich da nicht auf ein Terminalfenster setzen, das eh droege aussieht. Sondern gleich eine eigene GUI aufmachen, zB in GTK. Damit hast du auch dein Problem nicht mehr. Denn in einem GTK-Text-Field oder was auch immer es da so alles gibt den Text auszutauschen ist vorgesehen. Daneben kannst du auch noch niedliche Bueroklammer-Bildchen malen oder welche Gestalt da gewuenscht ist.


  • Einen Grund, warum es C sein muss sehe ich da jetzt - bei beiden Problemen - immer noch nicht.

    Wenn du eine GUI vorraussetzen kannst, und ein Maskottchen baust (also so etwas wie Clippy?!?) - dann wuerde ich da nicht auf ein Terminalfenster setzen, das eh droege aussieht. Sondern gleich eine eigene GUI aufmachen, zB in GTK. Damit hast du auch dein Problem nicht mehr. Denn in einem GTK-Text-Field oder was auch immer es da so alles gibt den Text auszutauschen ist vorgesehen. Daneben kannst du auch noch niedliche Bueroklammer-Bildchen malen oder welche Gestalt da gewuenscht ist.

    Nein, kein Softwaremaskottchen :D. Eher so etwas wie der Hitchbot. Ich scheue mich nur davor, so etwas Roboter zu nennen, weil es sich ja nicht selbstständig bewegt :P.


    Damit die Frage immer noch ganz unten steht:
    chvt und fgconsole begreife ich noch nicht... fgconsole gibt bei mir überall(!) eine 1 aus. Wenn ich chvt 1 oder chvt 2 eingebe passiert nichts.

    Kannst mir jemand erläutern wie das funktionert?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!