Script di shell da Applescript

1

Questo mi ha fatto impazzire Ho uno script che è un eseguibile in /usr/local/bin/ , che funziona perfettamente in Terminal, ma non riesco a richiamare Applescript per chiamarlo:

RunShell("estc R505")

on RunShell(oscript)
    do shell script oscript
end RunShell

non fa niente Ho provato a dare invece la posizione effettiva /usr/local/bin/estc , e chiamandola in bash con bash o sh ... niente funziona. Dovrebbe restituire una stringa di testo e funziona perfettamente nel terminale.

    
posta Michael Riordan 14.01.2018 - 15:35
fonte

1 risposta

2

In Script Editor , se esegui il seguente comando AppleScript :

do shell script "echo $PATH"

Vedrai come PATH è definita per il do shell script comando :

"/usr/bin:/bin:/usr/sbin:/sbin"

Devi includere il nome di percorso completo in qualsiasi eseguibile che non sia in PATH , mostrato sopra, affinché funzioni in un AppleScript do shell script comando .

Un'altra opzione è di aggiungere un export PATH comando al comando do shell script , ad esempio:

set exportPath to "export PATH=$PATH:/usr/local/bin:/opt/X11/bin:"

E nel tuo caso, usalo come, ad esempio:

RunShell("estc R505")

on RunShell(oscript)
    set exportPath to "export PATH=$PATH:/usr/local/bin:/opt/X11/bin:; "
    do shell script exportPath & oscript
end RunShell

Ovviamente regola la porzione ... di export PATH=$PATH:... per riflettere il tuo PATH effettivo che non è incluso nel predefinito PATH passato al comando do shell script come mostrato sopra.

    
risposta data 14.01.2018 - 16:27
fonte

Leggi altre domande sui tag