Y at-il un moyen de passer des arguments à un programme en cours d'exécution via:
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 indiquant au terminal d'ouvrir ~/my_executable ~/arg1 ~/arg2.
J'ai essayé:
open -a /Applications/Utilities/Terminal.app '~/my_executable arg1 arg2'
Mais il récupère arg1 et arg2 comme s'ils faisaient partie du chemin plutôt que des 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 ce drapeau, les arguments sont transmis au terminal.
Je suis seulement autorisé à changer les arguments en Terminal.app (la partie entre []):
open -a /Applications/Utilities/Terminal.app [~/my_executable arg1 arg2]
Le moyen le plus simple consiste probablement à créer un script Shell temporaire, par exemple.
$ echo "~/my_executable arg1 arg2" > /tmp/tmp.sh ; chmod +x /tmp/tmp.sh ; open -a Terminal /tmp/tmp.sh ; rm /tmp/tmp.sh
Oui je sais. besoin de gérer un autre script ... mais de penser différemment. vous ne travaillez pas sur Terminal, mais sur l'éditeur de script . (pas de script bash, mais d'AppleScript)
property testScript : "/tmp/sh.sh"
set input to display dialog "args?" default answer ""
log input
tell application "Terminal"
activate
do script testScript & " " & text returned of input
end tell