Bash Script che viene eseguito solo nel terminale

0

Ho creato uno script Bash che dovrebbe essere in grado di essere eseguito su qualsiasi macchina. Il problema che sto avendo funzionerà solo nel terminale. Quando un utente fa doppio clic sullo script, alcuni utenti lo aprono in iTerm e altri in Xcode in lettura. Qualche idea su come eseguirlo in questi programmi o renderlo specifico solo per il terminale?

Inoltre, sto avendo un problema in quanto lo script che sto eseguendo viene aperto da uno "sviluppatore non identificato". So come risolvere manualmente dalle preferenze di sistema, ma c'è comunque da automatizzare nello script?

    
posta MacMania 21.07.2016 - 08:00
fonte

1 risposta

0

Aggiungi l'estensione .command

Per avere uno script bash aperto ed eseguito in Terminal.app di macOS, aggiungi il suffisso .command al nome file.

Se hai uno script di bash chiamato myscript.sh , rinominalo in myscript.command . Una volta rinominato, quando il file viene fatto doppio clic o aperto dal Finder di macOS, Terminal.app si aprirà ed eseguirà il file.

Firma codice

Viene visualizzato l'avviso Sviluppatore non identificato perché lo script non è firmato con il codice. È un avvertimento ragionevole da macOS, come uno script potrebbe fare del male.

Se si sta distribuendo lo script tramite un sito Web, è necessario firmare il codice del payload o del contenuto. Il modo migliore per ottenere questo risultato dipende dall'ambiente dei tuoi utenti.

Vedi facendo girare un file bash eseguibile quando si fa clic per approcci ragionevoli come un wrapper AppleScript o ornitorinco .

Wrapper AppleScript

Puoi incorporare uno script di shell in un AppleScript. Gli AppleScript esportati possono essere resi eseguibili e firmati con il codice:

 Applications > Utilities > Script Editor.app

Utilizza il comando fai script di shell e File > Esporta con la firma del codice abilitata.

    
risposta data 21.07.2016 - 08:53
fonte

Leggi altre domande sui tag