comment exécuter open -n applicaton name en ligne de commande?

0

J'ai obtenu ces deux lignes que je veux exécuter à partir d'un fichier de script (sur Yosemite 10.10.3). Cela fonctionne quand on court du terminal

CX_LICENSE=LS
open -n /Applications/Inspire\ Designer\ 10.0\ GA/Inspire\ Designer.app/

J'ai sauvegardé ces deux lignes dans un fichier et l'ai nommé ID d'exécution. -rwxr-xr-x @ 1 employé d'administration 89 20 juil 17:34 runID

Si je double clique sur runID, je reçois une nouvelle fenêtre avec

Last login: Mon Jul 20 17:22:27 on ttys002
dsa-mac1:~ Administrator$ /Users/Administrator/Desktop/runID ; exit;
: command not foundr/Desktop/runID: line 1: 
/Users/Administrator/Desktop/runID: line 1: -n: command not found
logout

[Process completed]

aucune idée de comment faire fonctionner runID?

Radek
la source
Oui c'est correct. Copié du terminal.
Radek
J'ai utilisé un éditeur de texte standard. Je ne me souviens plus de son nom pour le moment.
Radek
Je ne suis pas capable de le faire maintenant. Je faisais une session à distance et essayais de résoudre un problème. Je vais demander à quelqu'un d'émettre et de voir. Merci de votre aide.
Radek
Le message d'erreur ne semble pas correspondre à votre exemple de code (-n est sur la ligne 2), mais cela peut être dû à la fin des lignes de Windows. Pouvez-vous utiliser nanocomme éditeur, écrire le script ici et réessayer?
nohillside
En outre, pour utiliser une application spécifique, vous aurez besoin de l' -aoption telle que open -n -a "Inspire Designer.app".
nohillside

Réponses:

2

Vous manquez la ligne initiale de votre fichier de script - le "shebang".

Mettez ce qui suit dans votre fichier de script:

#! / bin / sh
CX_LICENSE = LS
open -n / Applications / Inspire \ Designer \ 10.0 \ GA / Inspire \ Designer.app/

Cela devrait fonctionner - le fichier que vous aviez auparavant ne contenait pas assez d'informations pour indiquer au système d'exploitation comment exécuter votre script. Vous souhaitez exécuter un ensemble de commandes shell, vous devez donc indiquer au système d'exploitation qu'il s'agit d'un script shell. Pour ce faire, vous devez l'inclure en #!/bin/shtant que première ligne du script.

Voir cette réponse sur le dépassement de capacité pour plus d'informations.

Mise à jour

Juste pour confirmer, je viens de tester ce script et cela fonctionne bien:

#!/bin/sh
open -n /Custom\ Applications/MacVim.app

Comme correctement indiqué par @ fd0, vous devez nommer le script <script>.toolou le <script>.commandfaire exécuter à partir du Finder (où <script>est un nom explicite pour le script).

mjturner
la source
Je pense que j'ai déjà essayé cela. Laisse-moi confirmer demain.
Radek
Oui, j'ai essayé avant de poster cette question. Obtenir ce "dsa-mac1: administrateur de bureau $ ./runID ./runID: ligne 2: -n: commande introuvable"
Radek le
Je viens de tester en utilisant un script similaire et cela a du charme - voir ma réponse mise à jour.
mjturner
1
@mjturner - Les scripts de shell ne sont pas censés être double-cliquables sauf s'ils sont suffixés de .commandou .tool. Dans les deux cas, les fichiers texte n'ont pas besoin d'un shebang. Le script s'exécute dans une instance du shell de l'utilisateur.
fd0
@ fd0 Oui, alors je me suis rendu compte (et merci pour le .command/ .toolconseil). Aussi, j'ai négligé de tester en utilisant Finder :(
mjturner