PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Text in neuer Konsole ausgeben



error
30-01-2004, 19:00
Guten Tag zusammen

Also, ich hab folgenden Wunsch:
Ich möchte ein Skript haben, das mir ein neues Konsolenfesnter öffnet und dann in diesem Fenster einen Text ausgibt.
Ich bekomm das irgendwie nicht zusammen, obwohl es nicht schwer sein kann.

offe
31-01-2004, 11:10
xterm -bg gray -fg black -title "Offe" -e './test.sh;sleep 100' &
verschwindet nach 100 sec wieder oder
xterm -bg gray -fg black -title "Offe" -e './test.sh;/bin/bash' &

-fg Foreground Farbe
-bg Background Farbe
-title Überschrift über dem Fenster
alles nicht wichtig

Offe

capchaos
31-01-2004, 11:16
There's more than one way to do it.... daher 'ne Alternative:



#!/bin/bash

TITEL="Testtitel...";
TEXT="Test, eins zwei drei...";

case $1 in
-test)
echo ${TEXT};
echo "Drücke <Enter> um das Fenster zu schließen.";
read;
exit 0;
;;
esac

exec xterm -T ${TITEL} -e "$0 -test";
exit 0;


Das einfachste, was mir einfällt, ist allerdings xmessage $TEXT.

error
31-01-2004, 11:45
Ich glaub, da hab ich mich ein bisschen falsch ausgedrückt:
Ich möchte das irgendwie mit dem Befehl bash machen.
Da gibts ja auch jede Menge optionen, aber ich weiss nicht, welche ich jetzt nehmen soll.

offe
31-01-2004, 12:03
bash ist eine Shell
in bash gibt es einen Befehl xterm der ein neues Fenster öffnet.

wenn du in einer Konsole xterm eingibst, und in einer graphischen Oberfläche bist, wird ein neues Fenster aufgemacht. Was willst du mehr?

Offe

capchaos
31-01-2004, 13:14
"irgendwie mit dem Befehl bash"

Ich glaub, du weißt noch nicht ganz, was du willst. ;-)

Sag' doch einfach, wozu genau es gut sein soll, sonst kann dir keiner helfen.

peschmae
31-01-2004, 19:18
"bash" hat überhaubt nix mit Fenster/Nicht-Fenster zu tun. Das ist ne Shell, die in einem (virtuellen oder auch nicht virtuellen) Terminal läuft.

MfG Peschmä

error
31-01-2004, 20:54
Tschuldigung, wenn ich mich ungenau ausgedrückt habe, aber ich versuchs jetzt noch mal:

mit dem befehl konsole oeffnet er ein Konsolen-Fenster. logisch.

Jetzt will ich, das er nicht nur das Fenster offnet, sondern auch noch oben einen Text ausgibt (der dann auch stehen bleibt) , und dann soll man ganz normal an der Konsole arbeiten dürfen.

peschmae
31-01-2004, 21:22
Konsole ist vergleichbar mit Xterm. Die meisten benutzen wohl letzeres - Konsole ist nur die KDE-Inkarnation davon.

Wie das mit Konsole geht weiss ich nicht genau. Mit -e kannst du einen Befehl ausführen. Der wäre dann hier z.B. die Bash. Wenn die bash beendet wurde dann schliesst auch Konsole.

Nun müsstest du nur noch die Bash dazu bringen, zuerst echo auszuführen und dann einen Prompt anzuzeigen, richtig?

Keine Ahnung wie das geht. Die Varianten die ich versucht habe gingen nicht :(

MfG Peschmä

offe
31-01-2004, 23:08
Was spricht gegen:
xterm -title "Offe" -e './test.sh;/bin/bash' &

Offe

peschmae
01-02-2004, 08:50
Nichts, ausser dass er Konsole möchte. Vielleicht verwendet er ja die Tabs oder so...

Auf jeden Fall finde ich aterm/xterm auch besser.

MfG Peschmä

mwanaheri
01-02-2004, 09:38
wie wärs, wenn du folgendermaßen vorgehst:
1. speichere den Text, den du ausgeben willst, in einer Datei
2. lass das Script ein xterm öffnen, in dem die Datei angezeigt wird
3. lösche die Datei wieder, wenn sie nicht mehr gebraucht wird

z.B.
ls -l > script.ausgabe
xterm -e 'less script.ausgabe'
rm script.ausgabe

Es ploppt ein Fenster (ein xterm) auf, in dem die Ausgabe von ls zu sehen ist. Wird less mit 'q' beendet, so wird das xterm wieder geschlossen. soll man ganz normal an der Konsole arbeiten dürfen, so muss das xterm vom Script unabhängig gemacht werden. Dazu macht man daraus einen Hintergrundprozess:

xterm -e 'less script.ausgabe' &

so läuft das Script weiter und darf auch beendet werden, während das xterm mit der Textanzeige weiterhin steht.
Ich hoffe, ich hatte dich richtig verstanden. Das ist das, was Offe schon meinte. Nur mit viel mehr Worten.

edit: ups, ich hätte nicht zwischedurch frühstücken sollen.

error
02-02-2004, 11:55
OK, danke fuer die Antworten. Is zwar nicht das was ich mir am Anfang erhofft hatte, aber ich probiers aus.

capchaos
02-02-2004, 19:57
@error

Hast du dir mein Script oben überhaupt angeguckt?

(statt "xterm" kann auch "konsole" gestartet werden)

error
03-02-2004, 23:44
ich habs mal ausprobiert, mit xterm gehts auch.
Aber wenn ich statt xterm jedoch konsole eingebe, sagt er mir:

kbuildsycoca running...
Mutex destroy failure: Device or resource busy

keine Ahnung, was das zu bedeuten hat.
Aber trotzdem danke...muss es halt mit xterm gehen

brotzi
04-02-2004, 00:16
Dass konsole sowas ausgibt ist nicht ungewöhnlich. Versuch doch mal:


konsole --noclose -e /bin/bash -c "echo hallo; read dummy"

Weitere Optionen für Konsole gibt dir "konsole --help"

peschmae
04-02-2004, 07:44
Konsole und andere KDE-Programme sagen ständig so bedeutungslose Sachen - Gnome-Programme haben ähnliche Krankheiten (sie möchten mimmer eine libpixmap.so, die ich nicht hab). Alle laufen trotzdem problemlos.

das --no-close war bei mir in der --help - Auflistung gar nicht dabei :(
Und Manpage haben die öden Kde-Progs ja auch net.

MfG Peschmä

error
05-02-2004, 14:14
Wir kommen der Sache immer näher.
Jetzt macht er das Fenster auf, gibt den Text aus, und schließt es auch nicht wieder.
Aber nach der Textausgabe, hab ich keinen Prompt.
Ich kann also keine Befehle eingeben.
Der Titel des Fensters ist <Finished> - /bin/bash -Konsole
Tja, wie verflixt doch sowas simples wie eine Ausgabe in einem Anderen Fenster sein kann.

capchaos
05-02-2004, 20:27
#!/bin/bash

TITEL="Testtitel...";
TEXT="Test, eins zwei drei...";


case $1 in
-test)
echo ${TEXT};
exec /bin/bash --login
exit 0;
;;
esac

exec xterm -T ${TITEL} -e "$0 -test";

exit 0;