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


24

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

回答:


23

あなたのコマンドが呼び出されたと仮定するとmycommand、これを実行するようにランチャーを変更します:

gnome-terminal -e "mycommand|less"

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

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

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

xterm -e "mycommand" hold

7
デフォルトの端末「コマンド終了時」アクションを維持するには、新しい端末プロファイルを作成し、コマンド終了後に開いたままに設定し、gnome-terminalに--tab-with-profile=PROFILENAMEオプションを渡すことをお勧めします。あなたはこのように:-)異なるbahavioursのための多くのプロファイルを持つことができます
反転

1
xterm -hold -e mycommand

8

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

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

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

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


1
+1、およびコマンドが失敗した場合(ゼロ以外の終了コードを返した場合)にのみプロンプトを表示するには、次のようにしますcommand || read -n1 -p "Command failed. Press any key to exit..."
Jukka Matilainen

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"

3

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

成功またはシェル

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

このファイルを〜/ binなどのどこかに置き、ランチャーで「元のコマンドの成功またはシェル」を使用します。


0

この回答は、あなたが望むことをするために私がこれまで見た中で最高の答えを与えます。--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

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

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

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

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

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


0

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

ターミナルウィンドウを開いたままにするオプションがあるはずです ここに画像の説明を入力してください

.desktopファイルには、エントリがあるはずです X-KeepTerminal=true

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.