2011-12-07 18 views
129

まずはMacを使用しています。このファイルをダブルクリックで実行可能にするにはどうすればよいですか?

次に、この "file.sh"を実行する必要があります。私は、ターミナルとタイプを開く必要があり、それを実行する必要があります毎回:

cd /Users/Jacob/Documents/folderWithFileInIt 
bash file.sh 

これは大丈夫ですが、私は、ファイルをダブルクリックで実行させる場合、それはたくさん速くなりますように私は感じて、あなたは思いません?

私の質問は、このファイルをダブルクリックで実行可能にする方法です。

私のアイデアは、のいずれかであった:

a)は、端末とアクセス許可の変更にはchmodのようなものを入力しますか?

b)ファイルを作成し、上に書いたコードを^に入れて、そのファイルを実行可能にしますか?

c)これをどうにかして自動化しますか?

どの方法が最適ですか、さらに良い方法はありますか?できるだけ多くのことを説明してください、私はターミナルには初めてです。ありがとう。

+1

確実に動作しますが、スクリプトをクリックして簡単、そしてはい、Automatorには、適切なツールです。あなたはあなたの質問から知っているようです、あなたの質問は何ですか? –

答えて

275

デフォルトでは、*.shファイルはテキストエディタ(XcodeまたはTextEdit)で開きます。ターミナルを開くときにターミナルで実行されるシェルスクリプトを作成するには、「コマンド」拡張子を付けて名前を付けます(例:file.command)。デフォルトでは、これらはターミナルに送られ、ターミナルはファイルをシェルスクリプトとして実行します。このなし

あなたはまた、例えば、ファイルが実行可能であることを確認する必要があります。:

chmod +x file.command 

、ターミナルは、それを実行することを拒否します。

ターミナルでデフォルトシェルを実行するよう具体的に手配するため、スクリプトはこの特定のシナリオで接頭辞#!で始まる必要はありません。 (もちろん、使用するシェルをカスタマイズする場合や、別のシェルを使用してコマンドラインから実行できるようにする場合は、#!行を追加することもできます)。

また、作業ディレクトリを変更せずにシェルスクリプトを実行します。実際に特定の作業ディレクトリで実行する必要がある場合は、cdコマンドでスクリプトを開始する必要があります。

+0

より有益な答えをありがとう。 – Jacob

+35

'cd" \ 'dirname" $ 0 "\' "'を使って現在の作業ディレクトリをあなたのシェルスクリプトがあるディレクトリに設定することもできます。 – gearsdigital

+2

審美的な理由から、.commandファイルを右クリックして情報を開く必要があります。そこに接尾辞(名前と接尾辞の下に)を隠すオプションがあります。 – Bijan

12

あなただけのターミナルで.shファイルを開くには、ファインダーを伝えることができます。

  1. ファイルを選択し
  2. が選ぶ、セクション「で開く」で
  3. それに情報(CMD-i)を取得します「その他...」ポップアップメニューで

これは、名前の変更とまったく同じ効果がありますアプリケーションとしてターミナルを選択します。それを.commandに変更する...名前を変更する必要はありません:)

25

拡張子をすべて削除してからダブルクリックします。ほとんどのシステムシェルスクリプトはこのようなものです。それがshebangを持っている限り、それは動作します。

+3

あなたの答えはMacOSのトリックでした...シンプルで素早い – Sam

+1

BTW、 "shebang"はほとんどすべての行の前にこの行があります:#!/ bin/shだがそれは違うかもしれないが、他の場合にはリンクを読む。 –

2
  1. 起動ターミナル
  2. タイプ - >ナノファイル名
  3. 貼り付けバッチファイルの内容とそれに
  4. タイプを保存 - >のchmod + xのそれは今あなたがダブルクリックすることができますEXEファイルを作成しますfileNameに
  5. とそれ。

ファイル名は二重引用符で囲む必要があります。 私はバッチファイルの私の場合のコンテンツは、Mac用>を使用しておりますのでは

のjava -jarセレンサーバスタンドアロン-3.3.1.jar

CD /ユーザ/ YOURNAME /ドキュメント/ SeleniumServerです - 役割ハブ

あなたが素敵にしたい場合は、

関連する問題