Terminal in KDE

Garga52

Cadet 3rd Year
Registriert
Dez. 2025
Beiträge
44
Ich habe zwei Probleme mit dem Terminal in KDE:

1. Wenn ich eine Bash-Datei doppelt anklicke, wird sie zwar ausgeührt, aber es öffnet sich kein Terminal-Fenster. Wie kann ich das ändern?
2. Wenn ich die Datei mit Rechtsklick ausführe, öffnet sich das Terminal-Fenster und das Skript wird ausgeführt, aber

read -p "Press Enter to exit..."

wird nicht richtig ausgeführt, d.h. wenn Enter gedrückt wird, passiert nichts, das Fenster schließt sich nicht. Beide Punkte haben einwandfrei in Linux Mint Cinnamon funktioniert, in KDE Plasma aber nicht. Was muss ich ändern?
 


Und an deiner Zeile ist auch einfach irgendwas Falsch
Bildschirmfoto_20260214_093610.webp

Also in der man gibts nichtmal nen -p

mach doch

#!/bin/bash
echo "Press Enter to exit..."
read

(Und ausführbar machen und "feuer")

Edit:
Und wenn du beobachtest, du startest das dingen, im Titel oben steht dann auch der name des Scriptes, ist das script durchlaufen und damit fertig verschwindet der Titel oben.

Ohne jetzt für dich noch alle Einstellungen der Konsole zu durchsuchen, schau doch mal nacheiner option wie vielleicht "nach beenden von scripten Fenster schileßen" oder so.

Edit:
was du für ne gui wo das dann evtl laufen soll auch immer gut machen kannst ist nen zenity oder ähnliches benutzen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Garga52
@Alexander2 zu 1.: ja genau, das meine ich ja, mit Rechtsklick kann ich ja erreichen, dass sich das Terminalfenster öffnet und das Skript ausgeführt wird, ich möchte es aber auch bei Doppelklick. Und zu 2.: ich verstehe nicht ganz, was Du meinst. Ich habe ein Skript

#!/bin/bash
blablabla

und am Ende eben
read -p "Press Enter to exit..."

Und das funktioniert nicht. Es wird zwar "Press enter to exit" angezeigt, aber wenn man Enter klickt, schließt sich das Terminalfenster nicht. Wiegesagt, unter Linux Mint Cinnamon hat alles funktioniert.

Alexander2 schrieb:
Ohne jetzt für dich noch alle Einstellungen der Konsole zu durchsuchen, schau doch mal nacheiner option wie vielleicht "nach beenden von scripten Fenster schileßen" oder so.
Das finde ich in den Terminaleinstellungen leider nicht, hatte schon geschaut.
 
Mal ganz stumpf auf die Datei Rechtsklick gemacht und geschaut womit sie ausgeführt wird? Ggf. da einfach "Konsole" einstellen? Bei mir werden .sh Scripte per default mit "Kate" also dem Texteditor geöffnet. Und die Datei ist auch ausführbar oder? (chmod).

1771063171007.png
 
Hallo,

Rechtsklick im Desktop, neu erstellen, Verknüpfung zu Programm.
  • Name eingeben
  • Reiter Programm, Name eingeben, Programm-> z.B. testskript.sh
  • Eventuell Argumente eingeben.
  • Erweiterte Einstellungen: In Terminal ausführen und Nach Programmende geöffnet lassen anklicken.

Kann sein das das nicht das gewünschte von dir ist.
Füge doch mal nach dem Befehl: read -p "Press Enter to exit..."
noch das Kommando "exit" ein.

Viele Grüße

Panzerfahrer
 
@Alexander2 Ich weiß nicht, was Du mit "man" bezeichnest...aber ist auch egal, denn ich habe ja geschrieben, dass das read -p "Press Enter to exit..." natürlich nur am Ende des SKriptes steht und nicht das Skript selber ist.

@ja, das hatte ich schon eingestellt und ausführbar ist das Skript auch (es wird ja auch ausgeführt bei Doppelklick, nur eben ohne dass sich ein Terminalwindow öffnet).

@Panzerfahrer das klappt leider nicht. Es öffnet sich zwar das Terminalwindow, das SKript wird nun aber nicht korrekt ausgeführt und zum Schluss steht zwar "Press enter to exit", aber das Fenster schließt sich wieder nicht nach Klicken auf Enter.
 
gem mal im terminal man man ein


Garga52 schrieb:
read -p "Press Enter to exit..."
WO es steht ist ja egal, es funktioniert nicht.

Wegen dem schließen, probiere es doch mal mit dem Terminalprogramm, das du unter Mint hattest oder wo das war, das wird genauso funktionieren wie da.
(Kannst du als "Standardanwendung" für Terminal einstellen, dann wird das immer genommen)
 
Im Terminal selber macht read -p keinen Sinn; das funktioniert nur in Skripten. Bei nur read wird gewartet, ohne dass ein Text erscheint; es braucht -p, damit ein (Warte-)Text ausgegeben wird.

Garga52 schrieb:
Ich weiß nicht, was Du mit "man" bezeichnest...aber ist auch egal, denn ich habe ja geschrieben, dass das read -p "Press Enter to exit..." natürlich nur am Ende des SKriptes steht und nicht das Skript selber ist.
Als "man" werden die man-Pages, sprich die Hilfe-Seiten zu den einzelnen Befehlen bezeichnet und die ruft man mit man DeinBefehl auf, z.B. man sudo.

Bash:
#!/bin/bash

read -p "Press Enter to exit..."
Wenn ich das so in eine Textdatei schreibe, als ~/Skripte/test.sh speichere, in den Dateieigenschaten ausführbar mache, dann ein Terminal launche in ~/Skripte und ./test.sh eingebe, dann funktioniert das so wie beabsichtigt; das Skript beendet sich auch, aber das Terminalfenster bleibt trotzdem offen.

@TE: Bei Skripten, die so gestartet werden - also mit Rechtsklick --> In Konsole ausführen oder Terminal hier öffnen - bleibt das Terminalfenster offen. Liegt daran, dass Dolphin intern das Terminal so mit einem --noclose ausführt, wodurch das Terminalfenster offen bleibt, wenn das Skript EOF erreicht hat. Außerdem wird so das EOF des Skriptes nicht korrekt interpretiert, sodass es so aussieht, das würde das Skript ohne Fehlermeldung hängen blieben. Entweder als Rechtsklick --> In Konsole ausführen (und damit klarkommen, dass das EOF nicht erkannt wird) oder das Skript manuell auf einem Terminal aufrufen, wo das EOF dann auch korrekt erkannt wird, das Terminalfenster danach aber dann offenbleibt.

Umständlich zwar, aber man kann auch einen Eintrag in den KDE-Anwendungsstarter hinzufügen.
1771076202756.png


Ein Skript, das so über den Eintrag im Anwendungstarter ausgeführt wird, schließt sein Terminalfenster wieder bei Erreichen von EOF.

EDIT: Oder über eine Verknüpfung zum Skript, wie von @Panzerfahrer beschrieben, aber "Nach Programmende geöffnet lassen" nicht anhaken, sonst schließt sich das Terminalfenster ja nicht bei EOF.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: rarp und Panzerfahrer
@Hyourinmaru danke Dir, ich bekomme es aber einfach nicht hin. Wenn ich das mache wie Panzerfahrer schreibt, funktioniert das Skript nicht mehr. Es geht mir ja nur darum, dass das Skript ausgeührt wird und ich im Terminalfenster das ganze kontrollieren kann...
 
Läuft das?

Bash:
#!/bin/bash

### [DEBUG] print commands ###
# set -x

### [DEBUG] log console output to file ###
exec &> >(tee -a "/tmp/konsole.log")

### start with graphical terminal (konsole) if no tty connected ###
tty &>/dev/null || exec konsole -e "$(readlink -f "$0")"

echo -e '\n\033[1;35mHello World!\033[0m'
cat <(curl -s https://0x0.st/PBB6.txt)
read -p "Press Enter to exit..."
 
Zuletzt bearbeitet:
Also bei mir Läuft das in KDE 6.5. Denke nicht das es an KDE liegt.
Welche KDE Version verwendest du?
Und was passiert wenn du das Script von @Uridium per Doppelklick aufrufst? Einfach nichts?
 
Garga52 schrieb:
@Uridium Nee, leider auch nicht.
Dann schau in die Datei /tmp/konsole.log. Wenn sie nicht existiert, wurde das Script nicht gestartet, bzw. falsch verknüpft. Versuche z.B. nicht, Shell Scripts mit einem Terminalprogramm zu verknüpfen. Das funktioniert nicht ohne zusätzliche Parameter. Die normale Verknüpfung wäre 'bash', sofern der Dateimanager nicht einen eigenen Eintrag ("ausführen") anbietet. Das sollte das Verhalten widerspiegeln, was Du zuvor beschrieben hast (das Script läuft unsichtbar). Darum habe ich in dem Script oben das Terminal explizit aufgerufen.
 
Zurück
Oben