.command、.tool、および.shファイル拡張子の違いは何ですか?


22

コマンドラインスクリプトの実行に関する質問をいくつか見ましたか?.commandおよび.tool拡張子が言及されているのを見ました。私は常に.shを使用しました。これらの異なるスクリプトの違いは何ですか?いくつかの拡張機能は異なるコマンドを許可しますか?

回答:


15
  • .command-(ターミナルシェルスクリプト)具体的には、シェルスクリプトをターミナルに関連付けます。「ターミナルファイル」と呼ばれることもあります。
  • .tool-(ターミナルシェルスクリプト)「.command」ファイル拡張子と同じです。
  • .sh-(シェルスクリプト)Xcode 4.1に関連付けられている基本的なシェルスクリプト。

プログラム的には、最初の2つ(.commandと.tool)の違いは微妙ですが、3つ目は基本的に単純なデフォルトのシェルスクリプトです。実際、Xcode 4.1に関連付けられています。

ここに画像の説明を入力してください


5
「…最初の2つ(.commandと.tool)の違いは微妙だと確信しています...」実際、違いは存在しません:-) Terminalはそれらを同じように扱います。2つのファイル名拡張子は、TerminalのInfo.plistのまったく同じファイルタイプにマップされ、Terminalはどの拡張子が提供されたかを検出しようとしません。さらに、異なる拡張子を持つことは、異なるデフォルトアプリケーションを持つことができるということを除けば、これら3つのファイルタイプの内容はすべて同じです。これらはすべてシェルスクリプトです。
クリスページ

2

.shファイルはデフォルトでXcodeによって「所有」されているため、いずれかをダブルクリックすると、実行する代わりにXcodeで開きます。

.commandおよび.toolファイルはデフォルトでTerminalが所有しているため、いずれかをダブルクリックすると、Terminalで開いて実行されます。

私はそれらの間の他の違いを知りません。

私も、シェルスクリプトに.shを使用しましたが、shの代わりにZshでシェルスクリプトの記述を開始したため、最近停止しました。特定のコマンドが.shで終了したか、 .zshなので、最終的にはすべてを〜/ bin /に入れて、実行可能であることを確認し、ファイル拡張子をまったく使用しません。


実際には、Xcodeでは開きません。そして、マシンにXcodeをインストールしています。
-daviesgeek

1
.shファイルはXcodeで開くことができます(コントロールクリック»「開く」でオプションとしてXcodeが表示されます)が、どのアプリで開くかは、最初にインストールされたアプリケーションと拡張機能を「要求」することに依存します。Xcodeの前に別のアプリがインストールされ、.shを要求した場合、Xcodeで開いていると表示されません。
TJ Luoma

1
正しい:ファイル名の拡張子が異なるため、異なるデフォルトのアプリケーションを使用できるということ以外は、これらのファイルの内容と処理は同じです。これらはすべてシェルスクリプトファイルです。
クリスページ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.