Benutzerdefinierte Terminatorbefehle bewirken, dass die Shell geschlossen wird

3620
hsiu

Ich habe das voreingestellte Terminatorprofil konfiguriert, um das Fenster beim Start in vier Quadranten aufzuteilen. Dies funktioniert gut.

Es gibt auch eine Option "Benutzerdefinierter Befehl" für jedes Terminal, von der ich annahm, dass sie etwas im Terminal ausführen sollte. Wenn ich jedoch irgendetwas dort einsetze, wird der Befehl ausgeführt und das Terminal wird geschlossen (ich bin sicher, dass es ausgeführt wird, weil ich es versucht habe echo hi > /tmp/hiund diese Datei tatsächlich mit "hi" erstellt wurde).

Wie kann ich jedes Terminal dazu bringen, einen von mir angegebenen Befehl auszuführen, aber danach offen bleiben?

EDIT: Kubuntu 14.04.1, mit der Standard-Terminator-Verteilung im vertrauenswürdigen Repo.

3

2 Antworten auf die Frage

4
xzfc

Es gibt eine When command exits:Option in Voreinstellungen → Profile → Befehl. Wenn Sie die Shell öffnen möchten, nachdem der Befehl ausgeführt wurde, hängen Sie ; bashan den benutzerdefinierten Befehl (z echo hi > /tmp/hi; bash. B. ).

Leider funktioniert keine dieser Optionen, wenn ich zum Beispiel irgendwo cd will, also bin ich bereit zu gehen. hsiu vor 9 Jahren 0
`cd /; bash funktioniert für mich. Vielleicht enthält Ihr `.bashrc` einen CD-Befehl? xzfc vor 9 Jahren 0
cd war eine schlechte Exa, da die meisten Shells in demselben Verzeichnis geöffnet werden, aus dem sie gestartet wurden, aber der Punkt ist das Öffnen einer _new_-Shell. Ich finde, es sollte eine Möglichkeit geben, zu sagen: "Führen Sie in dieser Shell diese Befehle aus, genau wie ich sie in die Befehlszeile eingegeben hatte, und lassen Sie die Shell dann unverändert." hsiu vor 9 Jahren 0
Setzen Sie den benutzerdefinierten Befehl auf "CUSTOM_CMD = 1 bash" und fügen Sie [this] (http://pastebin.com/raw.php?i=s47xv6J4) zu Ihrem `.bashrc 'hinzu. Es ist nicht ganz dasselbe (Befehle werden nicht wiederholt), aber Sie können Funktionen, Variablen, Shell-Optionen usw. definieren. xzfc vor 9 Jahren 0
Hm, wirkt ein bisschen spröde, aber es wird für mich funktionieren, vielleicht ändern Sie Ihre Antwort zu Ihrem letzten Kommentar. Vielen Dank! hsiu vor 9 Jahren 0
0
Ian Clark

@ xzfcs Kommentar in seiner akzeptierten Antwort half mir, eine Lösung zu finden.


Geben Sie in jedes "Benutzerdefinierte Befehls" -Feld ein

INITIAL_TERMINATOR_WINDOW=1 bash 

Von dort aus können .bashrcSie überprüfen, ob die Variable festgelegt ist, und entsprechend reagieren:

if [ -n "$INITIAL_TERMINATOR_WINDOW" ]; then # Do something from an initial window else # Do something different when opening subsequent windows fi