Sobald gnome-terminal bash gestartet hat, ist es aus der Schleife, was die Befehlsausführung betrifft: Es verwaltet nur die Ein- und Ausgabe. Sie benötigen also die Kooperation von bash, um etwas auszuführen, nachdem ~/.bashrc
es geladen wurde.
Erstens müssen Sie in vielen Fällen keine weiteren Befehle ausführen ~/.bashrc
. Zum Beispiel kann das Öffnen eines Terminals in einem bestimmten Verzeichnis einfach mit erfolgen cd /foo/bar && gnome-terminal
. Sie können Umgebungsvariablen in ähnlicher Weise festgelegt: VAR=value gnome-terminal
. (Wenn Sie ~/.bashrc
Umgebungsvariablen überschreiben, machen Sie es falsch: Definitionen von Umgebungsvariablen gehören dazu.~/.profile
)
Befehle im Terminal ausführen, aber vorher ~/.bashrc
können Sie tun
gnome-terminal -x sh -c 'command1; command2; exec bash'
Wenn Sie mehrere Registerkarten verwenden möchten, müssen Sie -e
statt verwenden -x
. Gnome-terminal spaltet das Argument von -e
at Leerzeichen nicht über eine Shell, sondern unbeholfen auf. Sie können jedoch einen Shell-Befehl schreiben, wenn Sie sicherstellen, dass keine Leerzeichen enthalten sind. Zumindest mit Gnome-Terminal 2.26 können Sie jedoch Tabulatoren verwenden ( <TAB>
durch ein literales Tabulatorzeichen ersetzen ):
gnome-terminal -e 'sh -c command1;command2;exec<TAB>bash'
gnome-terminal --tab -e 'sh -c command1;<TAB>exec<TAB>bash' \
--tab -e 'sh -c command2;<TAB>exec<TAB>bash'
Wenn Sie danach Befehle ausführen ~/.bashrc
müssen, müssen Sie die Befehle ausführen. Fügen Sie beispielsweise den folgenden Code am Ende von ein ~/.bashrc
:
eval "$BASH_POST_RC"
Dann, um einen Code nach (wirklich am Ende von) Ihrem BashRC auszuführen:
gnome-terminal -x sh -c BASH_POST_RC=\''command1; command2'\''; exec bash'
oder (weniger schwer zu zitieren)
BASH_POST_RC='command1; command2' gnome-terminal
Obwohl ich dies nicht besonders empfehle, sind Sie möglicherweise an den Techniken interessiert, die unter
So starten Sie ein Terminal mit einem bestimmten Text, der bereits in der Befehlszeile eingegeben wurde. .