Was ist der Unterschied zwischen den Dateierweiterungen .command, .tool und .sh?

22

Ich habe ein paar Fragen zum Ausführen von Befehlszeilenskripten gesehen. Ich habe gesehen, dass die .command- und .tool-Erweiterungen erwähnt wurden. Ich habe immer .sh verwendet. Was ist der Unterschied zwischen diesen verschiedenen Skripten? Ermöglichen einige Erweiterungen unterschiedliche Befehle?

Daviesgeek
quelle

Antworten:

15
  • .command - (Terminal-Shell-Skript) Ordnet Terminal ein Shell-Skript zu. Wird manchmal als "Terminaldatei" bezeichnet.
  • .tool - (Terminal-Shell-Skript) Entspricht der Dateierweiterung ".command".
  • .sh - (Shell-Skript) Ein grundlegendes Shell-Skript, das mit Xcode 4.1 verknüpft ist.

Programmatisch bin ich sicher, dass der Unterschied zwischen den ersten beiden (.command vs. .tool) subtil ist, während das dritte im Wesentlichen ein einfaches Standard-Shell-Skript ist. Und verbindet sich in der Tat mit Xcode 4.1.

Bildbeschreibung hier eingeben


quelle
5
"... Ich bin sicher, der Unterschied zwischen den ersten beiden (.command vs. .tool) ist subtil ..." Tatsächlich gibt es keine Unterschiede :-) Terminal behandelt sie identisch. Die beiden Dateinamenerweiterungen entsprechen genau demselben Dateityp in der Info.plist des Terminals, und das Terminal versucht nicht, die angegebene Erweiterung zu ermitteln. Abgesehen von der Tatsache, dass unterschiedliche Erweiterungen unterschiedliche Standardanwendungen ermöglichen, ist der Inhalt aller drei Dateitypen identisch. Sie sind alle nur Shell-Skripte.
Chris Seite
2

Ich glaube, dass .sh-Dateien standardmäßig im Besitz von Xcode sind. Wenn Sie also auf eine Datei doppelklicken, wird sie in Xcode geöffnet, anstatt ausgeführt zu werden.

.command- und .tool-Dateien gehören standardmäßig Terminal. Wenn Sie also auf eine davon doppelklicken, wird sie in Terminal geöffnet und ausgeführt.

Andere Unterschiede sind mir nicht bekannt.

Ich habe auch .sh für Shellskripte verwendet, habe aber kürzlich aufgehört, weil ich angefangen habe, meine Shellskripte in Zsh anstatt in sh zu schreiben, und es war verwirrend, zu versuchen, sich zu erinnern, ob ein bestimmter Befehl in .sh oder endete .zsh, also habe ich sie endlich alle in ~ / bin / abgelegt und sichergestellt, dass sie ausführbar sind, und überhaupt keine Dateierweiterungen verwendet.

TJ Luoma
quelle
Eigentlich öffnen sie sich nicht in Xcode. Und ich habe Xcode auf meinem Computer installiert.
Daviesgeek
1
.sh-Dateien können in Xcode geöffnet werden (Klicken Sie bei gedrückter Ctrl-Taste auf »Öffnen mit«, um Xcode als Option anzuzeigen). Welche App jedoch geöffnet wird, hängt von der zuerst installierten Anwendung ab und "beansprucht" die Erweiterung. Wenn eine andere App vor Xcode installiert wurde und .sh beansprucht, wird sie bei Xcode nicht als geöffnet angezeigt.
TJ Luoma,
1
Sie haben Recht: Abgesehen von der Tatsache, dass die verschiedenen Dateinamenerweiterungen unterschiedliche Standardanwendungen ermöglichen, sind Inhalt und Handhabung dieser Dateien identisch. Sie sind alle nur Shell-Skriptdateien.
Chris Seite