Sto cercando di eseguire un AppleScript .app che è compresso.
unzip -p file.app.zip | open -
o
open < $(unzip -p file.app.zip)
È possibile?
Poiché hai a che fare con un'applicazione compressa .app
compresso da zip, che è un pacchetto di applicazioni con molti file al suo interno, credo che dovrai estrarre il prima su disco per aprirlo, perché il comando open
per aprire un'applicazione è sotto forma di open -a ...
e non prende input da stdout
.
Quanto segue presuppone che il nome dell'app in file.app.zip
sia file
o il nome esatto dell'app all'interno del file .zip
:
unzip -oq "file.app.zip" -d /tmp; open -a "/tmp/file.app"; sleep 1; rm -r "/tmp/file.app"
La precedente riga di comando composta estrae file.app.zip
in /tmp
e poi lo apre, attende un secondo e poi elimina /tmp/file.app
. Nota che il valore del comando sleep
potrebbe dover essere regolato per evitare che l'app venga eliminata prima che venga aperta e terminata.
Si noti che il contenuto di /tmp
, che in realtà è /private/tmp
, viene automaticamente cancellato al riavvio. Quindi la riga di comando composta potrebbe essere abbreviata se non ti interessa se l'app rimane in /tmp'
fino al successivo riavvio:
unzip -oq "file.app.zip" -d /tmp; open -a "/tmp/file.app"
Stai chiedendo il comando open
per aprire il contenuto da stdin
. open
può essere fatto leggere da stdin
, ma aprirà i contenuti nell'editor di testo - che non è quello che vuoi.
Prova a utilizzare osascript
direttamente:
Se il file zippato è semplicemente AppleScript, esegui questo con il seguente.
unzip -p file.zip | osascript -
Dalla manpage osascript
:
osascript will look for the script in one of the following three places:
Specified line by line using -e switches on the command line.
Contained in the file specified by the first filename on the command line. This file may be plain text or a compiled script.
Passed in using standard input. This works only if there are no filename arguments; to pass arguments to a STDIN-read script, you must explicitly specify '-' for the script name.
Leggi altre domande sui tag compression terminal mojave high-sierra zip