Qual è la differenza tra le estensioni di file .command, .tool e .sh?


22

Ho visto un paio di domande sull'esecuzione degli script da riga di comando? Ho visto che sono state menzionate le estensioni .command e .tool. Ho sempre usato .sh. Qual è la differenza tra questi diversi script? Alcune estensioni consentono comandi diversi?

Risposte:


15
  • .command - (Script shell terminale) Associa in modo specifico uno script shell a Terminale. A volte indicato come "File terminale".
  • .tool - (Script shell terminale) Come l'estensione di file ".command".
  • .sh - (Shell Script) Uno script di shell di base associato a Xcode 4.1.

A livello di programmazione, sono sicuro che la differenza tra i primi due (.command vs. .tool) è sottile, mentre il terzo è essenzialmente un semplice script di shell predefinito. E infatti si associa a Xcode 4.1.

inserisci qui la descrizione dell'immagine


5
"... Sono sicuro che la differenza tra i primi due (.command vs. .tool) è sottile ..." In realtà, le differenze sono inesistenti :-) Terminal li tratta in modo identico. Le due estensioni di file corrispondono allo stesso tipo di file in Info.plist di Terminal e Terminal non tenta di rilevare quale estensione è stata fornita. Inoltre, a parte il fatto che avere estensioni diverse significa che possono avere diverse applicazioni predefinite, i contenuti di tutti e tre questi tipi di file sono gli stessi. Sono tutti solo script di shell.
Chris Page

2

Credo che i file .sh siano "posseduti" da Xcode per impostazione predefinita, quindi se dovessi fare doppio clic su uno di essi, si aprirà in Xcode invece di eseguirlo.

I file .command e .tool sono di proprietà di Terminal per impostazione predefinita, quindi se si fa doppio clic su uno di essi, si aprirà ed eseguirà in Terminal.

Non sono a conoscenza di altre differenze tra di loro.

Anch'io ho usato .sh per gli script di shell, ma di recente mi sono fermato perché ho iniziato a scrivere i miei script di shell in Zsh anziché in sh, ed era confuso provare a ricordare se un certo comando finiva in .sh o .zsh, quindi alla fine li ho messi tutti in ~ / bin / e mi sono assicurato che fossero eseguibili, e non li usassi affatto.


In realtà non si aprono in Xcode. E ho Xcode installato sul mio computer.
daviesgeek,

1
I file .sh possono essere aperti in Xcode (fare clic sul controllo »" Apri con "mostrerà Xcode come opzione), ma quale app apriranno dipenderà dall'applicazione installata per prima e" rivendicherà "l'estensione. Se un'altra app è stata installata prima di Xcode e rivendica .sh, non verrà visualizzata come apertura con Xcode.
TJ Luoma,

1
Hai ragione: a parte il fatto che le diverse estensioni di file consentono loro di avere diverse applicazioni predefinite, il contenuto e la gestione di questi file sono gli stessi. Sono tutti solo file di script di shell.
Chris Page
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.