ターミナルで.shまたは.commandファイルを実行する方法


87

オンラインで直接ダウンロードしたスクリプトをFinderから直接実行できるようにしたいのですが、ファイルをダブルクリックしても機能しません。

回答:


103

ターミナルを開き、入力しsh /path/to/fileてEnterキーを押します。

より高速にはsh、スペースを入力してからファイルをウィンドウにドラッグし、ウィンドウ上の任意の場所でアイコンを離します。


3
シェルスクリプトがtcsh、zsh、kshなどの別のシェルの構文で記述されている場合、どうなると思いますか?サフィックスshは、「このシェルでスクリプトを実行する」ではないシェルスクリプトを示します。
fd0

3
@ fd0シェバンラインがそれを処理します。
user14492

4
@ user14492- shell shell_scriptshebang行が無視されるため、シェルスクリプトを呼び出すとき。シェルは、最初の行をコメントとして読み取ります。
fd0

@ fd0、わかりません。sh /path/to/file意味的に他のものとどのように異なってい/path/to/file.shますか?
パセリエ

2
@ Pacerier-最初のフォームでは、呼び出し側のユーザーはファイルを読み取ることができ、ファイルを読み取るインタープリターを選択する必要があります。2番目の形式では、呼び出し側のユーザーのファイルのアクセス許可を読み取って実行する必要があり、インタープリターはスクリプトの最初の行のハッシュバングによって決定されます。どちらの場合も、カーネルはファイルの接尾辞を解釈しません。
fd0

12

あるいは、あなたも行うことができます

cd /directory/with/executable
chmod +x executable     # only required if your file is not already executable
./executable

また、指定されたシェルで実行可能ファイルを実行します(shebangで指定されている場合) #!/bin/(shell)


1
質問では、「オンラインでダウンロードしたスクリプトを実行する」と書かれています。インターネットからダウンロードしたファイルは通常644に設定されたアクセス権を持っている
nohillsideの

@patrix私はそれが単なるインターネットではなく、アカウントのデフォルトのマスクのために別のファイルシステムからあなたのファイルシステムにコピーされるすべてのファイルだと思います。
-rwenz3l

9
chmod u+x myfile.sh
cp myfile.sh /usr/local/bin

~/.bash_profile次の行を編集して追加します。

alias myfile=./myfile.sh

次のコマンドラインを実行します。

source ~/.bash_profile

その後、ファイルをプログラムとして実行できるようになります

$ myfile


Ubuntuでは、パス内の任意のスクリプトを実行することができますが#~/bin/shOSXスクリプトには.sh拡張子があり、aliasそれぞれに対応する必要があります。:-O
Fabrizio Bertoglio

6

以下の手順に従って、スクリプトファイルを実行します。

  1. .shファイルを右クリックします。

  2. Open Withにカーソルを合わせます。

  3. その他...を選択します

  4. アプリケーションフォルダにいるはずです。ユーティリティフォルダーを開き、Terminal.appを選択します。

  5. Terminal.appを選択できない場合は、有効なアプリケーションを推奨アプリケーションからすべてのアプリケーションに変更してください。ウィンドウの下部にあります。

  6. .shTerminal.appですべてのファイルを開きたい場合は、常に開くを選択します。

  7. ウィンドウの右下隅にある[開く ]ボタンを押します。


3

ダウンロード後に機能しないのは、ファイルのアクセス許可で許可されていないためです。実行権限を有効にするには、ターミナルを開いてを入力し chmod 755 /path/to/scriptます。完全なパスを入力する代わりに、Finderからスクリプトをターミナルウィンドウにドラッグできます。次に、実行するには、単に入力し /path/to/scriptます。ここでも、ファイルをターミナルウィンドウにドラッグアンドドロップできます。この構文は、スクリプトの最初の行で定義されている正しいシェルを使用してスクリプトを実行する必要があります。


ファイルを作成したテキストエディタでファイル.shが開きます。代わりにターミナルで開くにはどうすればよいですか?適切な権限を設定しました。
バート

@bartでは、ファインダー内でスクリプトを直接実行するために.command拡張子を追加する必要があります。
rwenz3l
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.