Home
» MAC OS X
»
Come eseguire comandi da terminale tramite uno script su macOS
Come eseguire comandi da terminale tramite uno script su macOS
Per eseguire comandi del Terminale da uno script su macOS, inseriscili in uno script di shell in formato testo semplice, rendilo eseguibile e poi avvialo dal Finder o dal Terminale. Utilizza .commandun'estensione per aprirlo con un doppio clic. Uno script non aggira i controlli sulla privacy di macOS né concede privilegi di amministratore.
Un breve script di shell inizia con una shebang che seleziona zsh.
1. Scrivi i comandi in un file di testo semplice
Uno script di shell è un file di testo contenente comandi. Inizia con una shebang , la prima riga che indica a macOS quale shell deve interpretare il file. La shell predefinita corrente per le nuove finestre del Terminale è zsh, sebbene un amministratore possa impostarne una diversa, come spiega Apple nella sua guida al Terminale . Questo esempio utilizza esplicitamente zsh:
#!/bin/zsh
# Print a message when the script runs
echo "Script is running"
Inserisci i comandi su righe separate sotto lo shebang. Lo shebang seleziona l'interprete, quindi usa la sintassi che supporta; uno script Bash, ad esempio, può iniziare con . La guida agli script di shell#!/bin/bash di Apple spiega le basi.
È possibile utilizzare TextEdit, ma assicurarsi che il file sia in formato testo semplice: i nuovi documenti di TextEdit possono essere in formato RTF. Scegliere Formato > Converti in testo semplice oppure impostare il formato dei nuovi documenti di TextEdit su Testo semplice nelle sue impostazioni. La formattazione RTF non è codice shell. Apple documenta queste opzioni nella sua guida di TextEdit . Anche un editor di codice o un editor da riga di comando come nanofunziona.
Salva lo script con l'estensione .command in una posizione facilmente accessibile.
2. Salvalo con .commandun'estensione
Salva il file di testo semplice con un nome descrittivo, ad esempio MyScript.command. L'estensione aiuta il Finder ad aprire lo script nel Terminale quando ci fai doppio clic. La documentazione per sviluppatori archiviata da Apple descrive questo flusso di lavoro con doppio clic per gli script di shell. Controlla il nome finale nel Finder: se termina con .command.txt, rinominalo in modo che l'estensione finale sia solo .command. Mantieni l'esempio in una posizione come il Desktop mentre lo configuri.
Se macOS chiede quale estensione utilizzare, mantieni .commande conferma che Finder non ha aggiunto .txt.
3. Rendere lo script eseguibile
Apri il Terminale e concedi al tuo account l'autorizzazione per eseguire il file. Per l'esempio salvato sul Desktop, inserisci:
chmod u+x "$HOME/Desktop/MyScript.command"
Premi Invio. u+xAggiunge i permessi di esecuzione per il proprietario; le virgolette proteggono i percorsi con spazi. Sostituisci il percorso di esempio se necessario. Trascina il file nel Terminale o usa il menu Opzione-clic del Finder per copiare il suo percorso. Apple mostra lo stesso metodo nelle sue istruzioni sui file eseguibili .
Il comando chmod aggiunge i permessi di esecuzione per il proprietario del file.
4. Eseguire lo script
Fai doppio clic MyScript.commandnel Finder per eseguirlo nel Terminale. L'output e gli errori verranno visualizzati lì. In alternativa, inserisci il percorso completo:
"$HOME/Desktop/MyScript.command"
Oppure spostati prima nella cartella, quindi anteponi al nome del file il prefisso ./:
cd "$HOME/Desktop"
./MyScript.command
Questo ./comando indica alla shell di eseguire un file nella cartella corrente. La guida ai comandi del Terminale di Apple spiega come eseguire un file eseguibile tramite percorso.
Esegui il file specificandone il percorso e controlla l'output nel Terminale.
Risolvere gli errori comuni
"Permesso negato": verifica di aver eseguito il comando chmod u+xsul file corretto. Se necessario, ripeti il comando utilizzando il percorso esatto del file. Rendere un file eseguibile non autorizza tutti i comandi al suo interno.
"File o directory non esistente": verifica la posizione e l'ortografia, inclusa l'estensione. Un file salvato accidentalmente con un nome diverso MyScript.command.txtnon corrisponderà al comando precedente. Trascinare il file nel Terminale può essere utile per inserire il percorso corretto.
Un comando funziona se digitato ma non nello script: lo script potrebbe utilizzare una shell diversa o basarsi su alias, variabili d'ambiente o una directory di lavoro dalla sessione interattiva del Terminale. Utilizza lo shebang corretto, evita di affidarti agli alias e specifica esplicitamente i percorsi dei file. Se i comandi necessitano di una cartella specifica, aggiungi la cdriga appropriata all'inizio dello script.
Assicurati di comprendere le autorizzazioni prima di condividere.
La parte relativa all'esecuzione è separata dalle autorizzazioni di privacy. Uno script viene normalmente eseguito con il tuo account; utilizzalo sudosolo per i comandi che richiedono privilegi di amministratore.
macOS potrebbe richiedere l'accesso a cartelle protette o ad altre app. Esamina ogni richiesta e concedi solo ciò che è necessario. Controlla il menu Apple > Impostazioni di Sistema > Privacy e Sicurezza per File e Cartelle e le relative impostazioni sulla privacy . Le autorizzazioni dipendono dall'accesso richiesto e dall'app che lo richiede; non si tratta di autorizzazioni generiche per singolo comando e non vengono condivise con gli script.
Prima di eseguire o condividere uno script, leggi ogni riga e assicurati di aver capito cosa modifica. Un .commandfile è comodo perché può essere eseguito all'apertura, quindi utilizza solo file provenienti da fonti attendibili.