comment passer des arguments de ligne de commande pour l'exécution d'un programme avec la commande ouvrir?
Est-il un moyen de passer des arguments à un programme en cours d'exécution par le biais de:
open -a /Applications/Utilities/Terminal.app ~/my_executable
J'ai essayé:
open -a /Applications/Utilities/Terminal.app ~/my_executable arg1 arg2
Mais ceci est interprété comme disant le terminal pour ouvrir ~/my_executable ~/arg1 ~/arg2.
J'ai essayé:
open -a /Applications/Utilities/Terminal.app '~/my_executable arg1 arg2'
Mais il ramasse arg1 et arg2 comme si elles faisaient partie de la trajectoire plutôt que d'arguments.
J'ai essayé:
open -a /Applications/Utilities/Terminal.app ~/my_executable | xargs arg1 arg2
J'ai aussi essayé:
open -a /Applications/Utilities/Terminal.app ~/my_executable --args arg1 arg2
Mais avec le drapeau, les arguments sont passés à la borne.
NOTE
Je suis seulement autorisé à modifier les arguments à la Terminale.app (la partie à l'intérieur de [ ]):
open -a /Applications/Utilities/Terminal.app [~/my_executable arg1 arg2]
Est-il une raison pour laquelle vous ne pouvez pas il suffit de lancer l'exécutable directement, sans l'aide de la
Ouais parce que c'est la ligne de commande Xcode utilise :/ en Essayant de passer des arguments à un programme qui utilise une interface ncurses (et doit donc être débogué dans une fenêtre de terminal).
Ce que vous essayez de mettre --args en face de votre ecexutable:
Que cela ne fonctionne pas, @chown. Vous pouvez essayer vous-même en ouvrant un terminal et en saisissant cette commande.
open
commande?Ouais parce que c'est la ligne de commande Xcode utilise :/ en Essayant de passer des arguments à un programme qui utilise une interface ncurses (et doit donc être débogué dans une fenêtre de terminal).
Ce que vous essayez de mettre --args en face de votre ecexutable:
open -a /Applications/Utilities/Terminal.app --args ~/my_executable arg1 arg2
?Que cela ne fonctionne pas, @chown. Vous pouvez essayer vous-même en ouvrant un terminal et en saisissant cette commande.
open -n -a /Applications/Utilities/Terminal.app --args ~/my_executable arg1 arg2
OriginalL'auteur Francisco Aguilera | 2015-04-08
Vous devez vous connecter pour publier un commentaire.
Probablement la façon la plus simple est de créer un temporaire d'un script shell, par exemple,
Oui, je ne peux pas le voir d'une façon plus élégante, malheureusement, il semble juste être une limitation qui n'est pas facile à contourner.
OriginalL'auteur Paul R
Vous pouvez trouver votre réponse par l'exécution s'ouvrir sans arguments:
% open
Usage: open [-e] [-t] [-f] [-W] [-R] [-n] [-g] [-h] [-b <bundle identifier>] [-a <application>] [filenames] [--args arguments]
[...]
--args All remaining arguments are passed in argv to the application's main() function instead of opened.
[...]
Vous pouvez le voir il y a une option
--args
vous pouvez l'utiliser comme ceci:Je l'ai testé sur el Capitan (10.11.3) donc je ne sais pas si l'option est présente dans les versions antérieures.
OriginalL'auteur Enrico
Oui, je sais. besoin de gérer un autre script.
mais penser différemment. vous travailler non pas sur le Terminal, mais sur l'Éditeur de Script.
(pas de scripts bash, mais AppleScript require)
OriginalL'auteur Zetton Nara