Come eseguo gli script da riga di comando?

16

In Windows, posso creare .bat file. Lo faccio doppio clic e tutte le linee sono interpretate come se l'avessi inserito nella console.

In OS X, quale file o programma devo usare? Se voglio scrivere un file con;

 echo hello world

Voglio fare doppio clic su questo file e farlo eseguire in una console. Come faccio questo?

    
posta Rodrigo 04.08.2011 - 21:04
fonte

6 risposte

21

Le basi del terminale in OS X sono le stesse di quelle usate in Linux. Quello che stai cercando in particolare è comunemente chiamato "Shell Scripting".

La shell predefinita quando apri Terminal.app (che si trova in /Applications/Utilties ) è la shell bash.

OS X ha avuto un gestore di shell integrato accessibile tramite Finder e altre applicazioni tramite l'estensione .command , sebbene non frustrantemente tramite l'estensione .sh . Tuttavia, impostare lo script per eseguirlo tramite il Finder è ancora più complicato.

  1. Crea un semplice script di shell, come il tuo esempio ho creato un'applicazione Hello World:
#!/bin/bash
echo "Hello World"
  1. Salva questo file come HelloWorld.command .

  2. Assegna a questo file il permesso di essere eseguito. chmod u+x HelloWorld.command dovrebbe farlo.

  3. Apri la directory in cui hai salvato questo file in Finder. Quindi fai doppio clic sul file HelloWorld.command .

Questo aprirà un terminale ed eseguirà lo script, l'output sul mio computer è il seguente:

$ /Users/jason/Applications/HelloWorld.command ; exit;
Hello World
logout

[Process completed]

Il modo alternativo di eseguire questo file è mentre sei ancora nel Terminale, semplicemente emetti ./HelloWorld.command assumendo che tu sia nella stessa directory del file.

Così facendo si otterrà un output molto più semplice:

jason-mac Applications $ ./HelloWorld.command
Hello World
jason-mac Applications $

Hai appena creato ed eseguito uno script di shell in OS X!

    
risposta data 04.08.2011 - 21:20
fonte
4

L'equivalente della Console o del prompt dei comandi in Windows è l'app Terminal in / Applicazioni / Utility /

L'equivalente di DOS (o di qualsiasi cosa lo chiamino in questi giorni) è "bash"

L'equivalente di un file batch (.bat) in Windows è uno script di shell (.sh)

Fai una ricerca su Google per "bash" "riferimento" e vedrai il resto. Vorrei anche raccomandare l'acquisto del Bash Cookbook (O'Reilly).

In particolare, questo sarebbe ciò che scriveresti in una finestra di terminale per ottenere il tuo script "ciao mondo":

Per creare il file:

    echo "echo hello world" > file.sh

Per modificare le autorizzazioni per rendere eseguibile il file:

    chmod 755 file.sh

Per eseguire lo script:

    ./file.sh

Se vuoi essere in grado di fare doppio clic su di esso dal Finder, fai clic con il pulsante destro del mouse (o control-clic) sul file e seleziona Ottieni informazioni, quindi in Apri con seleziona l'app Terminale. Oppure potresti usare l'estensione .command invece dell'estensione .sh.

    
risposta data 04.08.2011 - 21:58
fonte
2

Probabilmente vuoi dare un'occhiata a AppleScript. Questo libro di Sal Soghoian è considerato da molti il libro go-to su AppleScript.

Un altro buon modo per gli utenti di automatizzare le app Mac è l'utilizzo di Automator . Potresti provare anche tu. Spero che questo ti aiuti.

Aggiorna

Sembra che tu stia cercando qualcosa come lo scripting della shell Unix. Questo due tutorial sono decenti e sembrano coprire le basi.

    
risposta data 04.08.2011 - 21:08
fonte
0

Script di shell. Non credo che Ask Different sarebbe il posto adatto per discuterne in profondità, ma qui c'è una guida molto dettagliata: link

Mac OS X è UNIX certificato dal 10.5 in poi (giusto?) quindi questa saggezza qui è applicabile anche a Linux e ad altri sistemi operativi simili a UNIX.

(in un modo meno complesso, l'Automator di Mac OS X è piuttosto dannatamente potente, come lo è l'AppleScript Editor, che possono entrambi eseguire script di shell e altri comandi con programmi e avvolgerli in un comodo pacchetto .app per Launchpad o condivisione con gli amici)

    
risposta data 04.08.2011 - 21:11
fonte
-1

Ho fatto un video un paio di giorni fa spiegando questo. Spero che questo aiuti: link

    
risposta data 30.07.2013 - 21:03
fonte
-2

Per mac è il file .sh conosciuto anche come script di shell

    
risposta data 04.08.2011 - 21:13
fonte

Leggi altre domande sui tag