まず私はMacを使っています。
次に、この「file.sh」を実行する必要があります。実行するたびにTerminalを開いて次のように入力します。
cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh
これは問題ありませんが、ファイルをダブルクリックで実行させるともっと早くなると思いますよね。
だから私の質問は、どうやってこのファイルをダブルクリックで実行可能にするのですか?
私の考えは次のどちらかでした。
a)端末にchmodのようなものを入力して権限を変更しますか?
b)ファイルを作成し、上に書いたコードをその中に入れて^そのファイルを実行可能にしますか?
c)どういうわけかこれを自動化するのですか?
どの方法が最善ですか、それとももっと良い方法がありますか。また、できる限り説明してください。私はTerminalについては初めてです。ありがとう。
デフォルトでは、*.sh
ファイルはテキストエディタ(XcodeまたはTextEdit)で開かれます。開いたときにターミナルで実行されるシェルスクリプトを作成するには、「command」という拡張子で名前を付けます(例:file.command
)。デフォルトでは、これらはターミナルに送信され、ターミナルはシェルスクリプトとしてファイルを実行します。
また、ファイルが実行可能であることを確認する必要があります。例えば:
chmod +x file.command
これがなければ、Terminalは実行を拒否します。
この特定のシナリオでは、スクリプトが#!
接頭辞で始まる必要がないことに注意してください。Terminalがデフォルトのシェルでそれを実行するように特別に調整しているためです。 (もちろん、使用するシェルをカスタマイズしたい場合や、別のシェルを使用しながらコマンドラインから実行できるようにしたい場合は、#!
行を追加できます。)
また、ターミナルは作業ディレクトリを変更せずにシェルスクリプトを実行します。実際に特定の作業ディレクトリで実行する必要がある場合は、スクリプトをcd
コマンドで始める必要があります。
拡張子をすべて削除してからダブルクリックします。ほとんどのシステムシェルスクリプトはこのようなものです。それが持っている限り Shebang それはうまくいくでしょう。
ターミナルで.sh
ファイルを開くようにFinderに指示するだけです。
これは、名前を.command
に変更するのとまったく同じ効果があります。ただし、名前を変更する必要はありません:)
ファイル名は二重引用符で囲む必要があります。私はMacを使用しているので - >私の場合はバッチファイルの内容
cd/Users/yourName/Documents/SeleniumServer
Java -jar Selenium-server-standalone-3.3.1.jar -role hub
それは確かに機能します