web-dev-qa-db-ja.com

ターミナルアプリケーションのランチャーを使用して、プログラムの完了後にターミナルを開いたままにするにはどうすればよいですか?

アプリケーションランチャーから実行するターミナルコマンドがあります。これはうまく機能しますが、コマンドが失敗する場合があるため、結果を確認できるようにターミナルを開いたままにしておきたいと思います。これどうやってするの?

24
Eugene M

コマンドの名前がmycommandであると仮定すると、これを実行するようにランチャーを変更します。

gnome-terminal -e "mycommand|less"

より永続的で、おそらくよりクリーンなソリューションが必要な場合は、gnome-terminalを開き、[編集]、[プロファイル設定]に移動し、[タイトルとコマンド]タブをクリックします。 「コマンド終了時」オプションを「端末を開いたままにする」に変更します。

コマンドを実行すると、何かが実行されたときにターミナルが開いたままになります。

編集:ターミナルにあまり関心がない場合は、xtermの保留フラグを使用できます。

xterm -e "mycommand" hold
23
Oli

ランチャーはスクリプトを実行していますか?

スクリプトの最後に追加します

read -p "Press any key to exit > " -n1 junk
echo 

その後、スクリプトは終了を選択するまで待機します。

8

.desktopショートカットで、これを使用します

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $Shell"

スクリプトが終了すると、Bashプロセスはそれ自体を新しい呼び出しに置き換えます。

引用符で囲まれた引数をスクリプトに渡す必要がある場合は、引用符をエスケープする必要があります。

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $Shell"
8
mivk

他の回答とは少し異なるアプローチ:コマンドを実行し、それが失敗した場合、シェルを生成します。この方法では、ターミナルを開いたままにする必要がなく(コマンドの成功と失敗を区別しません)、シェルが失敗した場合に特に役立つことがわかります。閉じるには、Ctrl-D(EOF)、 "exit"、Alt-F4(またはウィンドウマネージャーがウィンドウを閉じるために使用するもの)などを使用します。

成功またはシェル

#!/bin/sh
[ $# -eq 0 ] && {
  echo "$(basename $0): no command" >&2
  exit 1
}
"$@" || {
  echo "failed: $?"
  exec $Shell
}

これを file 〜/ binなどの場所に配置し、ランチャーで「success-or-Shell your original command」を使用します。

3
Roger Pate

watchコマンドを使用します。

形式:watch -n60 myCommand、またはwatch -n60 "my command string"

  • -nは、myCommandへの呼び出しの間に待機する秒数を指定しました。例:上記のコマンドはmyCommandを60秒ごとに永久に呼び出します。
  • コマンドが複数の単語である場合は、二重引用符で囲んでください:"my command string"

ディスクの使用状況を表示し、リーダーが表示できるように開いたままにするランチャーが必要だとしましょう。ランチャー内でこのコマンドを使用するだけです。
watch -n60 "df -h"、これはdf -hを60秒ごとに呼び出します。

デフォルトで別の端末を使用するXubuntuを実行しているため、gnome-terminal -e "mycommand|less"の受け入れられた回答よりもこれが好きです。

0
Gabriel Staples

ランチャーを右クリックしてプロパティを入力してみてください。

ターミナルウィンドウを開いたままにするオプションがあるはずです enter image description here

.desktopファイルには、X-KeepTerminal=trueというエントリが必要です

0
nathanfranke

この答え は、あなたが望むことをするために今まで見た中で最高の答えを与えます。彼らは、実行するコマンドでスクリプトを作成し、それを--init-fileパラメーターで使用することをお勧めします(bash固有ですが、おそらくcsh/tcsh/zshなどでも同じことができます)。

#!/bin/bash --init-file
commands to run

...そして次のように実行します:

xterm -e /path/to/script
# or
gnome-terminal -e /path/to/script
# or
the-terminal -e bash --init-file /path/to/script/with/no/Shebang
0