¿Cómo se inicia una aplicación.app almacenada en nfs share desde el script de bash?

2

Necesito ejecutar *.app desde nuestro recurso compartido NFS donde se almacenan las diferentes aplicaciones y versiones.

No puedo hacer que funcione como parte de un script de bash.

Por ejemplo, para texto sublime, aquí está el comando que utilizo para iniciar:

elif [ 'uname' == "Darwin" ]; then
    exec open -a "/path/to/nfs/"Sublime\ Text.app" "$@"
fi

Cuando llamo a mi script, aparece el siguiente error:

FSPathMakeRef(/path/to/nfs/Sublime Text.app) failed with error -43.

Sé que el camino es correcto. Los permisos también están bien. Puedo iniciarlo con la ruta completa exec open -a "/path/to/nfs/"Sublime\ Text.app/Contents/MacOS/"Sublime\ Text"" "$@" , pero luego todo el contenido de la carpeta .app no está disponible.

¿Hay otra forma de iniciar .app desde la línea de comandos?

    
pregunta Kevin Lemaire 19.02.2018 - 17:50

1 respuesta

4

El problema principal que veo con su comando :

exec open -a "/path/to/nfs/"Sublime\ Text.app" "$@"

¿Ha utilizado una barra invertida para escapar de un espacio mientras que también cita el comando . Utilice uno u otro, pero no ambos, por ejemplo:

open -a "/path/to/nfs/Sublime Text.app"

O:

open -a /path/to/nfs/Sublime\ Text.app

Tampoco veo ninguna razón para usar exec cuando el comando open por sí mismo funciona en este contexto, o desde un script , por ejemplo:

open -a "/path/to/nfs/"Sublime Text.app" "$@"

Dicho esto, sin embargo, al usar el comando open con la opción -a , puedes considerar usar la opción --args , que desde su página de manual indica: "Todos los argumentos restantes se pasan a la aplicación abierta en el parámetro argv a main (). Estos argumentos no se abren ni se interpretan con la herramienta open .", por lo que el comando como, por ejemplo:

open -a "/path/to/nfs/"Sublime Text.app" --args "$@"
    
respondido por el user3439894 19.02.2018 - 20:21

Lea otras preguntas en las etiquetas