В чем разница между расширениями файлов .command, .tool и .sh?

22

Я видел пару вопросов о выполнении сценариев командной строки? Я видел, что были упомянуты расширения .command и .tool. Я всегда использовал .sh. В чем разница между этими различными сценариями? Некоторые расширения позволяют использовать разные команды?

daviesgeek
источник

Ответы:

15
  • .command - (скрипт оболочки терминала) Специально связывает скрипт оболочки с терминалом. Иногда его называют «Терминальный файл».
  • .tool - (скрипт оболочки терминала) То же, что и расширение файла ".command".
  • .sh - (Shell Script) Основной сценарий оболочки, связанный с Xcode 4.1.

Программно, я уверен, что разница между первыми двумя (.command vs. .tool) незначительна, в то время как третий по сути простой сценарий оболочки по умолчанию. И действительно ассоциируется с Xcode 4.1.

введите описание изображения здесь


источник
5
«… Я уверен, что разница между первыми двумя (.command vs. .tool) неуловима…» На самом деле, различия не существуют :-) Терминал обрабатывает их одинаково. Два расширения имени файла соответствуют одному и тому же типу файла в Info.plist терминала, и терминал не пытается определить, какое расширение было предоставлено. Кроме того, помимо того, что наличие разных расширений означает, что они могут иметь разные приложения по умолчанию, содержимое всех трех этих типов файлов одинаково. Все они просто сценарии оболочки.
Крис Пейдж
2

Я считаю, что файлы .sh по умолчанию принадлежат XCode, поэтому, если вы дважды щелкнете по одному из них, он откроется в XCode вместо выполнения.

Файлы .command и .tool по умолчанию принадлежат терминалу, поэтому, если вы дважды щелкните один из них, он откроется и запустится в терминале.

Я не знаю никаких других различий между ними.

Я тоже использовал .sh для сценариев оболочки, но недавно остановился, потому что начал писать свои сценарии оболочки на Zsh вместо sh, и было непонятно, пытаясь вспомнить, заканчивалась ли определенная команда на .sh или .zsh, так что я, наконец, просто поместил их все в ~ / bin / и убедился, что они исполняемые, и вообще не использую для них расширения файлов.

Ти Джей Луома
источник
На самом деле они не открываются в Xcode. И на моей машине установлен Xcode.
Дэвисджик
1
Файлы .sh могут открываться в Xcode (управляющий щелчок »« открыть с помощью »покажет Xcode как опцию), но в каком приложении они будут открываться, будет зависеть от того, какое приложение впервые установлено и« запрашивает »расширение. Если другое приложение было установлено до Xcode и запрашивает .sh, оно не будет отображаться как открывающееся с Xcode.
TJ Luoma
1
Вы правы: кроме того факта, что разные расширения файлов позволяют им иметь разные приложения по умолчанию, содержимое и обработка этих файлов одинаковы. Все они просто файлы сценариев оболочки.
Крис Пейдж