時々、タスクを実行するバックグラウンド(ターミナルウィンドウやTTYなし)で実行されるスクリプトがあります。
これで、Gnomeターミナルウィンドウを開き、2つのコマンドを実行する別のタスクを実行しながら、1つのタスクを実行したいと思います。実際には1つのコマンドを実行すればいいのですが、コマンドの出力を見ることができるようにターミナルウィンドウを開いたままにしたいと思います。コマンドはstdoutとstderrに印刷され、時間の経過とともに出力が変わるため、ファイルに書き込んで通知を送信するだけでは操作が正しく行われません。
Gnome Terminalを使用してウィンドウを開き、1つのコマンドを実行できます。
gnome-terminal -e "sleep 10"
sleep
簡単にするために、長期実行コマンドを選択しました。ただし、別のコマンドを追加すると、ターミナルウィンドウは開きません。
gnome-terminal -e "echo test; sleep 10"
この問題に対する解決策は何ですか?
ベストアンサー1
gnome-terminal
引用符内のすべての内容は1つのコマンドとして扱われるため、多くのコマンドを連続して実行するにはインタプリタ(通常はシェル)を起動し、その中で次のことを行う必要があります。
gnome-terminal -e 'sh -c "echo test; sleep 10"'
ただし、コマンドが操作を完了した後でもウィンドウを開いたままにしたい場合があります。この場合は、新しいシェルを起動するか、現在のシェルを新しいシェルに置き換えます。
gnome-terminal -e 'sh -c "echo test; sleep 10; exec bash"'