AppleScript le permite ejecutar comandos del shell con do shell script
. Es fácil asignar una variable a una salida de dicho comando.
set theResult to do shell script "echo everything"
>> theResult = "everything"
En MacOS también se puede ejecutar código Javascript en Terminal con osascript
:
osascript -l JavaScript << EOF
console.log('everything');
EOF
>> everything
Sin embargo, si se ejecuta esta pieza desde AppleScript, no se obtiene nada:
set theResult to do shell script "osascript -l JavaScript << EOF
console.log('everything');
EOF"
>> theResult = ""
También intenté asignar una variable de shell a la salida de osascript e imprimirla con echo. De nuevo, funciona en la Terminal:
theString=$(osascript -l JavaScript << EOF
console.log('everything');
EOF
)
echo $theString"
>> everything
Pero sigue sin funcionar cuando se ejecuta a través de do shell script
:
set theResult to do shell script "theString=$(osascript -l JavaScript << EOF
console.log('everything');
EOF
)
echo $theString"
>> theResult = ""
¿Por qué ocurre esto? ¿Cómo hacer que funcione?
Apreciaré su ayuda.
Mi objetivo es poder hacer algún procesamiento de texto con Javascript dentro de un AppleScript script.
No me interesa poner el código Javascript en un archivo externo .js, prefiero mantenerlo en su sitio.