web-dev-qa-db-ja.com

gnome-terminalでコマンドを起動し、実行されたコマンドを終了せずにgnome-terminalを閉じますか?

私はいじくり回している半端なものを持っています。 MPV(ビデオプレーヤー)をビデオリンクに簡単に起動できるようにする方法を探しています。 MPVのデフォルトの動作は、ターミナルでmpv https://url.of.videoを起動するか、URLをMPVウィンドウにドラッグ/ドロップします。私はこのコーシャがキーボード中心の人だとは思いません。代わりに、ポップアップボックスを開始し、URLを貼り付けてEnterキーを押し、MPVがそのURLにビデオを起動するようにします。そうすれば、このコマンドをキーボードショートカットに結び付けて、完全なプロセスを簡単に実行できます。私はこれを完了しましたが、ちょっとしたペーパーカットがあります-gnome-terminalウィンドウがぶらぶらしています。シンプルなワンライナーです。

URL=$(yad --entry) && gnome-terminal -- bash -c "mpv $URL"

そのコマンドを起動すると、YADのおかげでポップアップボックスが表示されます。この時点でURLを貼り付けてEnterキーを押すと、1〜2秒でそのビデオのMPVウィンドウが開きます。驚くばかり。まさに私が欲しかったもの。

私が述べたペーパーカットは、gnome-terminalが動作し続けているという事実です。大規模な問題ではありませんが、上記のコマンドでgnome-terminalを起動し、MPVを呼び出し、変数(URL)を追加してから、ビデオを終了せずにgnome-terminalを閉じる方法があるかどうかを確認したいと思いますストリーム。

誰かが何かアイデアを持っている場合興味があります。どうもありがとう!

2
JaSauders

問題の解決策

ここでの正しい解決策は、gnome-terminalおよびbashの呼び出しを省略し、そもそも不要な変数を設定することです。これらはすべてあなたの場合には必要ありません。

mpv -- "$(yad --entry)"

URLを正しく処理するために引用符を追加しました。これにより、たとえば空白とアンパサンド記号(&)およびコマンドは引き続き機能します。 --mpvにオプションの検索を停止するように指示し、代わりに引数として指定するものを扱います。 mpvを起動するディレクトリに--versionという名前のファイルがあり、このファイル名を入力するだけの一般的なケースを想像してください。どのようにmpvがバージョン文字列を表示するかファイルを開くかを確認できますか?

あなたの質問に答えてください

Nohupまたはdisownを使用して、プロセスを開始したシェルからプロセスをデタッチできます。 「<command>&disown」と「Nohup <command>&disown」の違いを参照 =。

あなたの場合、正しい解決策は次のとおりです。

gnome-terminal -e Nohup mpv -- "$(yad --entry)"

ただし、はるかに優れたソリューションについては上記を参照してください。

11
dessert