Crea un file che quando si apre e scrive una riga in Terminale

1

C'è un modo per creare un file che, quando si fa clic, apre Terminal e digita ed esegue una linea specificata? (es .: say hello world )

    
posta bravokiloecho 22.04.2012 - 20:27
fonte

3 risposte

2

L'approccio semplice, ma completamente fallibile è quello di scrivere uno script di shell. Salvalo in un file chiamato mysay.sh :

#!/bin/sh
say hello world
say number five is alive

Finché non hai installato XCode che dovrebbe aprirsi in Terminale quando fai doppio clic su di esso.

Puoi farlo anche con AppleScript ed è un po 'più duraturo dal momento che non devi preoccuparti se l'applicazione predefinita per i file .sh non è Terminal:

tell application "Terminal"
  set currentTab to do script "/usr/bin/say hello world"
  do script "/usr/bin/say number five is alive" in currentTab
end tell
delay 5
tell application "Terminal" to quit

Salvalo come un'applicazione da AppleScript Editor e puoi fare doppio clic su di esso e il tuo Mac ti parlerà. Puoi aspettare e chiudere la sessione del terminale in seguito con un po 'più di AppleScript, se lo desideri.

    
risposta data 22.04.2012 - 20:45
fonte
3

Quello che stai cercando di fare è scrivere uno "script di shell" (nel caso in cui avessi bisogno di google in un secondo momento).

La prima riga di uno script di shell deve specificare quale interprete utilizzare. Nel tuo caso, usa sh per la normale shell Bourne. Lo scrivi con ciò che viene chiamato "shebang" in questo modo:

#!/bin/sh

dopo questo scrivi quali comandi vuoi eseguire, nel tuo caso, say hello world . L'interprete della shell leggerà questo come se lo avessi digitato nel terminale.

Nel tuo caso, il tuo file finale dovrebbe essere:

#!/bin/sh
say hello world

Se lo scrivi in TextEdit.app, assicurati di salvare in modalità testo normale (che passa da Cmd + Shift + T ). Puoi scegliere di salvare con l'estensione .command o .sh .

Se vuoi eseguirlo con un doppio clic, ti consiglio l'estensione .command .

E questo è tutto!

Possibile errore: se durante l'esecuzione viene visualizzato un errore che dice:

The file “[filename]” could not be executed because you do not have appropriate access privileges.

devi darti il permesso di eseguire. Per eseguire questa corsa:

chmod u+x path/to/my/file

Se non sai quale sia il percorso file, digita:

chmod u+x

scrivi uno spazio e trascina il file nella finestra.

Se sei curioso, u+x significa dare diritti di esecuzione dell'utente (proprietario).

    
risposta data 22.04.2012 - 21:39
fonte
1

Puoi farlo anche con AppleScript come accennato in precedenza, da Ian C. Tuttavia, puoi eseguire il comando singolo in un numero inferiore di righe e con un delay . Ecco un AppleScript che eseguirà il comando, quindi attenderà 5 secondi e quindi uscirà dal terminale.

tell application "Terminal" to do script "say hello world"
delay 5
tell application "Terminal" to do script "logout"
tell application "Terminal" to quit

Solo un metodo alternativo, rispetto a quello di @Ian C. Puoi anche prendere il file .sh di Ian e rinominarlo. Com se hai XCode, che lo aprirà in Terminal, e fare la stessa cosa dell'AppleScript, solo senza il ritardo. Spero che questo aiuti.

    
risposta data 22.04.2012 - 21:01
fonte

Leggi altre domande sui tag