新しい端末を開き、コマンドを入力するために使用したいスクリプトがあります。このようなコマンド
gnome-terminal
新しい端末を開きます。
また、私がそうするなら
gnome-terminal -e myprogram1
新しく開いた端末で myprogram1 が実行されます。しかし、myprogram1が完了した後にmyprogram2を実行するにはどうすればよいですか?私は同じことができません
gnome-terminal -e myprogram2
新しい端末が開かれるからです。
同じ新しい端末で両方を実行したいスクリプトを指定する方法はありますかmyprogram1
?myprogram 2
それとも新しいスクリプトを作成し、次のことを行う必要がありますか?
gnome-terminal -e scriptToExecuteMyPrograms1And2
答え1
次のような目的を達成できます。
$ gnome-terminal -e "bash -c '<cmd1>;<cmd2>;exec $SHELL'"
これが開き<cmd1>
、完了すると開き<cmd2>
、最後にコマンドプロンプトに移動しますexec $SHELL
。
たとえば、
$ gnome-terminal -e "bash -c 'vim;vim;exec $SHELL'"
running を実行しvim
て最初の項目を閉じると、vim
2 番目の項目が開始されます。vim
2番目の項目が閉じると、端末プロンプトが表示されます。
答え2
努力するgnome-terminal -e "myprogram1; myprogram2"
。&&
代わりに試してみることもできます;
。
答え3
端末の起動後に多くのコマンドを実行したい場合、より良いアプローチは、関数を作成し、その関数をエクスポートしてその関数を呼び出すことです。アプリケーションに合わせて、以下に提供されているものと同様のシェルスクリプトを作成します。
my_function(){
command1
command2
.
.
.
commandn
}
export -f my_function
$(x-terminal-emulator -e "bash -c 'my_function'")
複数の機能を持つこともできます。ただし、メインのように動作する他の関数、つまり他のすべての関数を呼び出す関数を作成する必要があります。したがって、この主な機能を実行するように端末を設定すると、残りの部分は認識して処理されます。
答え4
プログラムを~/.bashrc
ファイルに入れることができます
これは以下に適用されます。強く打つシェル(使用する場合)。 tty または gnome-terminal で端末を開くたびに実行されます。
デフォルトでは、ファイルの最後に実行したいプログラムを追加するだけです。