1 votos

No se encuentran los comandos bash definidos cuando se pasan en "do shell script" en osascript

Soy nuevo en el shell script y recientemente escribí un script para abrir una nueva ventana de terminal y ejecutar funciones definidas a través de osascript con "do shell script", pero el resultado mostró el comando no encontrado. Mi script es el siguiente:

#!/bin/bash

hello() {
    echo "Hello World"
}

openNewWindowAndRun() {
    osascript -e "
        tell application \"Terminal\"
            activate        
            do script \"$1\"
        end tell
    "
}

openNewWindowAndRun hello

También he intentado llamar directamente al hello en la función openNewWindowAndRun pero no tuvo suerte:

#!/bin/bash

hello() {
    echo "Hello World"
}

openNewWindowAndRun() {
    osascript -e "
        tell application \"Terminal\"
            activate        
            do script \"hello\"
        end tell
    "
}

openNewWindowAndRun

Cuando ejecuté el script, abrió la nueva ventana con éxito pero mostró el mensaje de error:
enter image description here

¿Alguien sabe qué parte me he perdido aquí? ¿Es posible pasar una función definida como parámetro a osascript? Si alguien puede echarme una mano, ¡sería genial!

0voto

hello es una función definida dentro de un script, sólo puede ser llamada por el código bash desde el propio script. No es accesible directamente desde la línea de comandos (su captura de pantalla) ni desde dentro de Applescript (su osascript llamada).

Para solucionarlo, es necesario convertir su hello en un shell script propio.

AppleAyuda.com

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.

Powered by:

X