Ich habe eine Datei scriptA.sh
auf dem Desktop erstellt und ausführbar gemacht. Das war dann der Inhalt:
#!/bin/bash
sudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'
Ich möchte darauf doppelklicken, um das Terminal zu öffnen und die beiden Befehle darin auszuführen und das Terminal geöffnet zu lassen. Aber was tatsächlich passiert, nachdem ich darauf doppelklicke und die run with terminal
Option wähle, ist, dass das Terminal für eine Sekunde geöffnet wird und sich dann selbst schließt. Ich weiß nicht, warum das passiert, daher wäre ich dankbar, wenn mir jemand erklären könnte, warum das passiert und wie man es beheben kann.
Antwort1
Sie möchten es wahrscheinlich verwenden, gksudo
wenn Sie es von Ihrem Desktop aus starten möchten. Daraufhin wird ein Fenster geöffnet, in dem Sie nach Ihrem Kennwort gefragt werden.
#!/bin/bash
gksudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'
Um Fehler zu beheben, möchten Sie das Skript wahrscheinlich zuerst in Ihrem Terminal ausführen. Auf diese Weise wird es nicht direkt nach dem Drucken einiger Fehlermeldungen geschlossen.
Aktualisieren
Eine Möglichkeit hierzu besteht darin, eine Datei wie folgt zu erstellen:
/home/user_name/.gnome2/panel2.d/default/launchers/script_name.desktop
Geben Sie dann etwa Folgendes ein:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=gdu-category-peripheral
Name[en_US]=Receiving fax
Exec=gksu /usr/bin/gnome-terminal
Comment[en_US]=Some description...
Name=My Script
Comment=Start my script
Icon=gnome-panel-launcher
Das funktioniert bei mir im Allgemeinen gut. Das Gnome-Terminal akzeptiert Parameter, sodass Sie verschiedene Einstellungen ändern können.
Verwenden Sie --working-directory=...
anstelle Ihres cd ...
Befehls. Um bestimmte Variablen abzurufen, möchten Sie wahrscheinlich die --profile=...
Option verwenden.
Exec=gksu -u userA /usr/bin/gnome-terminal --profile=/home/userA/profile --working-directory=/home/userA/scripts
Erstellen Sie dann das Profilskript für die Variable:
# In /home/userA/profile
PACKAGE_PATH=/home/userA/package1
Natürlich können Sie im Profilskript auch jeden anderen Alias oder alles andere hinzufügen, was Sie benötigen.
Antwort2
Wenn Sie die Option „In einem Terminalfenster ausführen“ wählen, wird das (Gnome-)Terminalfenster standardmäßig geschlossen, nachdem es beendet ist. Estutöffnen, da du erwähnst, dass es sich für eine Sekunde öffnet. Du kannst es machenbleibenÖffnen Sie es, indem Sie die Einstellung in Ihrem Terminalprofil ändern:
Wählen Sie im Menü (Gnome-Terminal) „Bearbeiten“ > „Profileinstellungen“ > „Titel und Befehl“. Wählen Sie bei der Option „Wenn Befehl beendet wird“ „Terminal offen halten“.
Das sollte funktionieren.