新しく開いた端末で複数のコマンドを実行するには?

新しく開いた端末で複数のコマンドを実行するには?

新しい端末を開き、コマンドを入力するために使用したいスクリプトがあります。このようなコマンド

gnome-terminal

新しい端末を開きます。

また、私がそうするなら

gnome-terminal -e myprogram1

新しく開いた端末で myprogram1 が実行されます。しかし、myprogram1が完了した後にmyprogram2を実行するにはどうすればよいですか?私は同じことができません

gnome-terminal -e myprogram2

新しい端末が開かれるからです。

同じ新しい端末で両方を実行したいスクリプトを指定する方法はありますかmyprogram1myprogram 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て最初の項目を閉じると、vim2 番目の項目が開始されます。vim2番目の項目が閉じると、端末プロンプトが表示されます。

答え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 で端末を開くたびに実行されます。

デフォルトでは、ファイルの最後に実行したいプログラムを追加するだけです。

関連情報