Qual é a diferença entre as extensões de arquivo .command, .tool e .sh?

22

Vi algumas perguntas sobre a execução de scripts de linha de comando? Vi que as extensões .command e .tool foram mencionadas. Eu sempre usei .sh. Qual é a diferença entre esses diferentes scripts? Algumas extensões permitem comandos diferentes?

daviesgeek
fonte

Respostas:

15
  • .command - (Script do shell do terminal) Associa especificamente um script do shell ao Terminal. Às vezes referido como "Arquivo de Terminal".
  • .tool - (Script do shell do terminal) Igual à extensão do arquivo ".command".
  • .sh - (Shell Script) Um script shell básico que está associado ao Xcode 4.1.

Programaticamente, tenho certeza de que a diferença entre os dois primeiros (comando vs. ferramenta) é sutil, enquanto o terceiro é essencialmente um script shell padrão e simples. E de fato se associa ao Xcode 4.1.

insira a descrição da imagem aqui


fonte
5
"... tenho certeza que a diferença entre os dois primeiros (.command vs. .tool) é sutil ..." De fato, as diferenças são inexistentes :-) O terminal as trata de forma idêntica. As duas extensões de nome de arquivo são mapeadas para exatamente o mesmo tipo de arquivo no Info.plist do Terminal e o Terminal não tenta detectar qual extensão foi fornecida. Além disso, além de ter extensões diferentes, eles podem ter aplicativos padrão diferentes, o conteúdo de todos esses três tipos de arquivos é o mesmo. Eles são todos apenas scripts shell.
Chris Página
2

Eu acredito que os arquivos .sh são "de propriedade" do Xcode por padrão; portanto, se você clicar duas vezes em um deles, ele será aberto no Xcode em vez de ser executado.

Os arquivos .command e .tool pertencem ao Terminal por padrão; portanto, se você clicar duas vezes em um deles, ele será aberto e executado no Terminal.

Não conheço outras diferenças entre eles.

Também usei .sh para scripts de shell, mas parei recentemente porque comecei a escrever meus scripts de shell em Zsh em vez de sh, e era confuso tentar lembrar se um determinado comando terminava em .sh ou .zsh, então finalmente coloquei todos em ~ / bin / e verifiquei que eles eram executáveis ​​e não use extensões de arquivo.

TJ Luoma
fonte
Na verdade, eles não abrem no Xcode. E eu tenho o Xcode instalado na minha máquina.
Daviesgeek # 611
11
Os arquivos .sh podem abrir no Xcode (clique com o controle »" abrir com "mostrará o Xcode como uma opção), mas em qual aplicativo eles abrirão dependerá de qual aplicativo foi instalado pela primeira vez e" reivindicará "a extensão. Se outro aplicativo foi instalado antes do Xcode e reivindicar .sh, ele não será exibido como aberto no Xcode.
TJ Luoma
11
Você está correto: Além do fato de que as diferentes extensões de nome de arquivo permitem que eles tenham aplicativos padrão diferentes, o conteúdo e a manipulação desses arquivos são os mesmos. Eles são todos apenas arquivos de script de shell.
Chris Página