29 votes

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

J'ai vu quelques questions sur l'exécution de scripts en 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 des commandes différentes ?

17voto

  • .commande - (Terminal shell script) Associe spécifiquement un shell script à Terminal. Parfois appelé "fichier Terminal".
  • .outil - (Terminal shell script) Identique à l'extension de fichier ".command".
  • .sh - (Shell script) Un shell de base script qui est associé à Xcode 4.1.

Sur le plan programmatique, 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. Et s'associe en fait avec Xcode 4.1.

enter image description here

7 votes

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

3voto

moodforaday Points 2633

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

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

Je ne connais pas d'autres différences entre eux.

Moi aussi, j'ai utilisé .sh pour les scripts de l'interpréteur de commandes, mais j'ai récemment arrêté parce que j'ai commencé à écrire mes scripts de l'interpréteur de commandes en Zsh au lieu de sh, et c'était déroutant d'essayer de se rappeler si une certaine commande se terminait par .sh ou .zsh, alors j'ai fini par les mettre tous dans ~/bin/ et je me suis assuré qu'ils étaient exécutables, et je n'utilise pas du tout d'extensions de fichiers sur eux.

1 votes

En fait, ils ne s'ouvrent pas dans Xcode. Et j'ai bien Xcode installé sur ma machine.

2 votes

Les fichiers .sh peuvent s'ouvrir dans Xcode (contrôle-clic " "ouvrir avec" montrera Xcode comme une option), mais l'application dans laquelle ils s'ouvrent dépend de l'application qui est installée en premier et qui "revendique" l'extension. Si une autre application a été installée avant Xcode et revendique .sh, elle ne s'ouvrira pas avec Xcode.

2 votes

Vous avez raison : En dehors du 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 manipulation de ces fichiers sont les mêmes. Ce ne sont que des fichiers shell script.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X