gnome-terminalがbashを開始すると、コマンドの実行に関する限りループから抜け出します。入力と出力のみを管理します。したがって、~/.bashrc
ロード後に何かを実行するにはbashの協力が必要です。
まず、多くの場合、実際にの後にコマンドを実行する必要はありません~/.bashrc
。たとえば、特定のディレクトリで端末を開くには、を使用しcd /foo/bar && gnome-terminal
ます。同様の方法で環境変数を設定できますVAR=value gnome-terminal
。(~/.bashrc
環境変数をオーバーライドする場合、間違っています:環境変数の定義はに属します~/.profile
)
ターミナルでコマンドを実行するには、前に~/.bashrc
、することができます
gnome-terminal -x sh -c 'command1; command2; exec bash'
複数のタブを使用する場合は、の-e
代わりに使用する必要があり-x
ます。Gnome-terminalは-e
、シェルを介して実行するのではなく、atスペースの引数を役に立たないように分割します。それでも、スペースを含めないようにすれば、シェルコマンドを作成できます。少なくともgnome-terminal 2.26では、タブを使用できます(<TAB>
リテラルのタブ文字に置き換えます):
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'
あなたが後のコマンドを実行する必要を行う場合は~/.bashrc
、作ることがコマンドを実行します。たとえば、次のコードを最後に含めます~/.bashrc
。
eval "$BASH_POST_RC"
次に、bashrcの後に(実際に、最後に)コードを実行します。
gnome-terminal -x sh -c BASH_POST_RC=\''command1; command2'\''; exec bash'
または(クォートの負荷が少ない)
BASH_POST_RC='command1; command2' gnome-terminal
この方法で行うことは特にお勧めしませんが、コマンドラインに特定のテキストがすでに入力されている状態で端末を起動する方法で説明したテクニックに興味があるかもしれません
。。