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