Quelle est la différence entre les extensions de fichier .command, .tool et .sh?

22

J'ai vu quelques questions sur l'exécution de scripts de ligne de commande? J'ai vu que les extensions .command et .tool étaient mentionnées. J'ai toujours utilisé .sh. Quelle est la différence entre ces différents scripts? Certaines extensions permettent-elles différentes commandes?

daviesgeek
la source

Réponses:

15
  • .command - (Script shell shell) Associe spécifiquement un script shell à Terminal. Parfois appelé «fichier terminal».
  • .tool - (Terminal shell script) Identique à l'extension de fichier ".command".
  • .sh - (Script Shell) Un script shell de base associé à Xcode 4.1.

Par programme, je suis sûr que la différence entre les deux premiers (.command vs .tool) est subtile, tandis que le troisième est essentiellement un simple script shell par défaut. Et s'associe en fait à Xcode 4.1.

entrez la description de l'image ici


la source
5
"... Je suis sûr que la différence entre les deux premiers (.command vs .tool) est subtile ..." En fait, les différences sont inexistantes :-) Terminal les traite de manière identique. Les deux extensions de nom de fichier correspondent au même type de fichier dans Info.plist de Terminal et Terminal ne tente pas de détecter quelle extension a été fournie. En outre, outre le fait que le fait d'avoir des extensions différentes signifie qu'elles peuvent avoir différentes applications par défaut, le contenu de ces trois types de fichiers est le même. Ce ne sont que des scripts shell.
Chris Page
2

Je crois que les fichiers .sh sont "possédés" par Xcode par défaut, donc si vous double-cliquez sur l'un d'eux, il s'ouvrirait dans Xcode au lieu de s'exécuter.

Les fichiers .command et .tool appartiennent à Terminal par défaut, donc si vous double-cliquez sur l'un d'eux, il s'ouvrira et s'exécutera dans Terminal.

Je n'ai connaissance d'aucune autre différence entre eux.

Moi aussi, j'ai utilisé .sh pour les scripts shell, mais j'ai récemment arrêté parce que j'ai commencé à écrire mes scripts shell dans Zsh au lieu de sh, et il était déroutant d'essayer de se rappeler si une certaine commande se terminait par .sh ou .zsh, donc je les ai finalement tous mis dans ~ / bin / et je me suis assuré qu'ils étaient exécutables, et je ne les utilise pas du tout.

TJ Luoma
la source
En fait, ils ne s'ouvrent pas dans Xcode. Et j'ai Xcode installé sur ma machine.
daviesgeek
1
Les fichiers .sh peuvent s'ouvrir dans Xcode (cliquez sur le bouton »« Ouvrir avec »affichera Xcode en option), mais l'application dans laquelle ils s'ouvrira dépendra de l'application installée en premier et« revendiquera »l'extension. Si une autre application a été installée avant Xcode et revendique .sh, elle ne s'affichera pas comme s'ouvrant avec Xcode.
TJ Luoma
1
Vous avez raison: outre le fait que les différentes extensions de nom de fichier leur permettent d'avoir des applications par défaut différentes, le contenu et la gestion de ces fichiers sont les mêmes. Ce ne sont que des fichiers de script shell.
Chris Page