2 votes

Comment lancer une application.app stockée dans un partage nfs à partir de bash script ?

J'ai besoin de courir *.app à partir de notre partage NFS où sont stockées les différentes applications et versions.

Je n'arrive pas à le faire fonctionner dans le cadre d'un script bash script.

Par exemple, pour Sublime Text, voici la commande que j'utilise pour le lancer :

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

Lorsque j'appelle mon script, j'obtiens l'erreur suivante :

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

Je sais que le chemin est bon. Les autorisations sont également correctes. Je peux le lancer avec le chemin complet exec open -a "/path/to/nfs/"Sublime\ Text.app/Contents/MacOS/"Sublime\ Text"" "$@" mais alors tout le contenu du dossier .app n'est pas disponible.

Existe-t-il un autre moyen de lancer une application .app à partir de la ligne de commande ?

4voto

user3439894 Points 52496

Le principal problème que je vois dans votre commande :

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

Avez-vous utilisé un barre oblique inverse pour échapper à une espace tout en citant les commande . Utilisez l'un ou l'autre, mais pas les deux, par exemple :

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

Ou bien :

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

Je ne vois pas non plus de raison d'utiliser exec lorsque le open commande en soi fonctionne dans ce contexte, ou à partir d'une script , par exemple :

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

Cela dit, lorsque l'on utilise le open commande avec le -a option vous pouvez envisager d'utiliser le --args option qui, dans sa page de manuel, indique : "Tous les arguments restants sont transmis à l'application ouverte dans le paramètre argv de main(). Ces arguments ne sont pas ouverts ou interprétés par le programme open ", ce qui fait de l'outil commande comme, par exemple :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X