Estoy intentando ejecutar una aplicación AppleScript que está comprimida.
unzip -p file.app.zip | open -
o
open < $(unzip -p file.app.zip)
¿Es esto posible?
Estoy intentando ejecutar una aplicación AppleScript que está comprimida.
unzip -p file.app.zip | open -
o
open < $(unzip -p file.app.zip)
¿Es esto posible?
Como se trata de un zip comprimido aplicación .app
que es un paquete de aplicaciones con muchos archivos en ella, creo que tendrás que extraer la aplicación al disco primero para abrirla, porque el open
comando para abrir una aplicación es en forma de open -a ...
y no toma entrada de stdout
.
A continuación se asume que el nombre de la aplicación en file.app.zip
es file
o el nombre exacto de la aplicación dentro del .zip
archivo:
unzip -oq "file.app.zip" -d /tmp; open -a "/tmp/file.app"; sleep 1; rm -r "/tmp/file.app"
Lo anterior línea de comandos compuesta extrae el file.app.zip
a /tmp
y luego lo abre, espera un segundo y borra el /tmp/file.app
. Tenga en cuenta que el valor de la sleep
comando puede ser necesario ajustar para que no se borre la aplicación antes de que se abra y termine de ejecutarse.
Tenga en cuenta que el contenido de /tmp
, que en realidad es /private/tmp
, se borra automáticamente al reiniciar. Por lo tanto, el línea de comandos compuesta podría acortarse si no le importa que la aplicación permanezca en /tmp'
hasta el próximo reinicio:
unzip -oq "file.app.zip" -d /tmp; open -a "/tmp/file.app"
Usted está preguntando al open
para abrir el contenido de stdin
. open
puede hacerse para leer desde stdin
pero abrirá el contenido en un editor de texto, que no es lo que quieres.
Pruebe a utilizar osascript
directamente: Si el archivo comprimido es simplemente AppleScript, entonces se logra esto con lo siguiente.
unzip -p file.zip | osascript -
Desde el osascript
página de manual:
osascript buscará el script en uno de los tres lugares siguientes:
Se especifica línea por línea utilizando los interruptores -e en la línea de comandos.
Contenido en el archivo especificado por el primer nombre de archivo en la línea de comandos. Este archivo puede ser texto plano o un script compilado.
Pasado a través de la entrada estándar. Esto funciona sólo si no hay argumentos de nombre de archivo; para pasar argumentos a un script de lectura STDIN, debe especificar explícitamente '-' para el nombre de script.
AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.