Risposte:
Per prima cosa nel terminale rendere eseguibile lo script digitando:
chmod a+x (yourscriptname)
Quindi, nel Finder, fai clic con il pulsante destro del mouse sul file e seleziona "Apri con" e poi "Altro ...".
Qui si seleziona l'applicazione in cui si desidera eseguire il file, in questo caso sarebbe Terminale. Per poter selezionare il terminale è necessario passare da "Applicazioni consigliate" a "Tutte le applicazioni". (L'applicazione Terminal.app si trova nella cartella Utilità)
NOTA: a meno che non si desideri associare tutti i file con questa estensione per essere eseguiti nel terminale, non si dovrebbe selezionare "Sempre aperto con".
.command
è eseguibile di default da Finder, senza la necessità di istruire Finder su come aprirlo.
.command
nell'estensione del file.
Hai provato a utilizzare l' .command
estensione del nome file?
chmod +x
) ma l' .command
estensione è già collegata al Terminale. Ottima soluzione, grazie
A partire da OSX 10.10 (Yosemite) e almeno da OS X 10.8 (Mountain Lion) , il comportamento è il seguente quando si aprono (facendo doppio clic) script eseguibili dal Finder :
.command
NO :
Preferences... > Profiles
puoi scegliere di chiudere automaticamente la finestra quando lo script esce.chmod +x <script>
in Terminal; altrimenti, vedrai i seguenti sintomi:.command
: Finder visualizza un messaggio di errore fuorviante che suggerisce che il problema può essere risolto tramite File > Get Info
, il che non è vero - utilizzare il chmod +x
metodo suggerito sopra.#!/bin/bash
): il comportamento è come se il suffisso fosse .sh
- vedi sotto..sh
, eseguibile o meno:
TextEdit.app
o, se installato, con Xcode.app
..scpt
o .applescript
(anche se sono essi stessi contrassegnati come eseguibili, che normalmente non è il caso):
[Apple]Script Editor
[1] Eseguibile significa: uno script con i bit di autorizzazione eseguibili impostati e l'utente chiamante - in relazione alla proprietà del file - quindi potenzialmente autorizzato a eseguirlo.
Se si utilizza chmod a+x
per impostare tutti i bit di autorizzazione (che è tipico), chiunque può invocarlo (supponendo che anche loro siano autorizzati a leggere il file in base ai bit di autorizzazione di lettura e alla proprietà del file).
osascript
è possibile includere nel .command
file invece di fare manualmente il pasticcio con il profilo.
osascript -e '...'
comando alla fine della sceneggiatura? Qual è il comando specifico e garantisce che la scheda corretta sia chiusa anche quando lo script non è in esecuzione nella scheda in primo piano?
osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &
... Potrebbe non funzionare in tutti gli scenari, anche se il reindirizzamento al end è davvero la chiave - altrimenti JavaScript può essere facilmente adattato (ad es. potrebbe essere necessario cambiare la finestra in tab se è il comportamento predefinito del terminale, ecc.).
.command
esecuzione del file di script nonostante l'impostazione del profilo?
bash
script, aggiungere read -p 'Press Return to close this window.'
come ultima istruzione.
In alternativa, è possibile creare una normale applicazione Mac OS X dallo script utilizzando Platypus
Il modo più semplice è cambiare l'estensione in .command
o nessuna estensione.
Ma questo aprirà il Terminale e dovrai chiuderlo. Se non si desidera visualizzare alcun output, è possibile utilizzare Automator per creare un'applicazione Mac che è possibile fare doppio clic, aggiungere al dock, ecc.
Automator
applicazioneRun
pulsante nell'angolo in alto a destra per testarlo.File > Save
per creare l'applicazione.Non è necessario utilizzare app di terze parti come Platypus.
Basta creare uno script Apple con Script Editor e utilizzare il comando do shell script "shell commands"
per chiamate di comando dirette o file di script di shell eseguibili, mantenere il file di script modificabile al sicuro da qualche parte, quindi esportarlo per creare uno script dell'applicazione. lo script dell'app può essere avviato facendo doppio clic o selezione nella cartella della barra.
Puoi anche impostare i valori predefiniti per estensione del file usando RCDefaultApp:
http://www.rubicode.com/Software/RCDefaultApp/
potenzialmente potresti impostare .sh per aprirlo in iTerm / Terminal ecc. avrebbe bisogno delle autorizzazioni di esecuzione dell'utente, ad es
chmod u+x filename.sh