0

Fedora Linux でプロジェクトに取り組む必要があり、次のように頻繁に入力する必要があります。

player map1.cfg &

実行可能な .sh ファイルを作成できることがわかりました。これには次のものが含まれます。

#!/bin/bash
player *.cfg &

ただし、runmap.sh ファイルをダブルクリックすると、「ターミナルで実行」、「表示」、「キャンセル」、および「実行」が表示され、「ターミナルで実行」をクリックすると、ターミナル ウィンドウが開いてすぐに閉じます。「実行」を押すと.cfgが開きますが、追加の(Java)ファイルを実行するにはターミナルウィンドウが必要です。

この問題を解決するにはどうすればよいですか?

その他の情報:

  • *.cfgmap2.cfg、map3.cfg などの .cfg ファイルを含む他のフォルダーに .sh ファイルをコピー アンド ペーストするために使用します。

  • プレーヤー/ステージ プロジェクト用です。

4

2 に答える 2

2

ファイル マネージャーからスクリプトを実行する場合、開始されるシェルは対話型ではありません。シェルはスクリプト ファイルを読み取ることしかできません。

ファイルに加えてインタラクティブ シェルを開くにexecは、スクリプトの最後で新しいシェルを開き、[ターミナルで実行] を使用します。

#!/bin/bash
player *.cfg &
exec /bin/bash
于 2012-12-04T19:11:20.233 に答える
1

さて、このように見てみましょう。

ターミナルでコマンドを実行すると、コマンドは子プロセスとして開始され、バックグラウンドに送信されます。コマンドが終了すると、コマンドは終了します。親プロセスは端末ウィンドウ自体であるため、バックグラウンドで実行されている間でもコマンドを発行できます。

バックグラウンドで実行するコマンドを発行するスクリプトを作成すると、スクリプトが開始され、コマンドがその子として生成され、スクリプトが終了したために閉じられます。

これらは OS の動作であり、実際に変更してはならないものです。したがって、本質的にあなたが求めているのは、コマンドを自分ですばやく実行する方法ですが、コマンドターミナルを使用して作業できるようにする方法ですか?

1) コマンドを入力するのがなぜそんなに面倒なのですか? Bash などの端末には、まさにこの理由から履歴機能があります。

2) コマンドを呼び出す必要があるときはいつでも、ターミナル ウィンドウから作成したミニ スクリプトを呼び出してみませんか。スクリプトを $PATH 変数のフォルダーに配置すると、ターミナルの任意の場所で使用できるようになります。

于 2012-12-04T19:02:00.533 に答える