Applescript - No se puede encontrar el recurso dentro de la aplicación

2

Tengo un paquete de aplicación Applescript regular que ejecuta un archivo de Applecript cuando se ejecuta. Estoy intentando ejecutar un archivo de shell que se encuentra en "/Contents/Resources/Data/df.sh", sin embargo, con el código que estoy usando, me sigue dando errores de "recurso no encontrado".

set bashFile to path to resource "df.sh"
do shell script "bash " & bashFile

Soy realmente nuevo en Applescript, así que existe la posibilidad de que esté haciendo algo obvio mal.

    
pregunta JamEngulfer 19.02.2014 - 00:29

4 respuestas

6

Hay algunas razones por las que no funcionó.

  1. path to resource básicamente toma la ruta del paquete y encuentra los archivos allí, por lo que debe colocar el subdirectorio, en este caso "Datos".
  2. Applescript usa su propia sintaxis de ruta de archivo (estúpida), por lo que necesita la versión POSIX.
  3. Se divide en espacios porque al agregar la ruta POSIX ~/Desktop/test folder se muestran como 2 argumentos a bash . Para solucionar este problema, simplemente ponga comillas a su alrededor, como lo haría en cualquier otro momento, con quoted form of .

Aquí está el script fijo:

set bashFile to path to resource "Data/df.sh"
do shell script "bash " & quoted form of (POSIX path of bashFile)
    
respondido por el 0942v8653 22.02.2014 - 15:52
2

No puedo hacer comentarios todavía, pero hubo 1 consejo más que me ayudó. Además de la respuesta de 0942v8653 :

  • Por ejemplo, si está utilizando el Editor de secuencias de comandos (y posiblemente también la aplicación Automator), cierre y vuelva a abrir el programa.

He añadido el archivo fuera del programa, por lo que no debe haber cargado / reconocido el archivo hasta que lo reinicié.

    
respondido por el Pysis 07.06.2016 - 17:53
0

El archivo que está intentando ejecutar: si lo localiza en el Finder y obtiene información en él Command I , ¿qué ruta dice la ventana de información en "Dónde:". Ese es probablemente el camino que querrás usar.

    
respondido por el Elliott 19.02.2014 - 01:57
0

Intente usar path to me en su lugar:

do shell script "bash " & POSIX path of (path to me) & "Contents/Resources/script.sh"

((path to me as text) & "Contents:Resources:script.sh") as alias

    
respondido por el user495470 19.02.2014 - 11:29

Lea otras preguntas en las etiquetas