Étant donné le code AppleScript suivant
on myHandler()
display dialog ("I'm your Handler!")
end myHandler
Comment puis-je appeler myHandler
de osascript
(en utilisant Terminal
), simple sans paramètres, mais aussi avec ?
Étant donné le code AppleScript suivant
on myHandler()
display dialog ("I'm your Handler!")
end myHandler
Comment puis-je appeler myHandler
de osascript
(en utilisant Terminal
), simple sans paramètres, mais aussi avec ?
on myHandler() display dialog ("I'm your Handler!") end myHandler
Comment appeler myHandler depuis osascript (en utilisant le Terminal)
En supposant que votre shell est bash
o zsh
Il existe plusieurs façons de procéder, en fonction de vos besoins ou de vos préférences. Vous pouvez envoyer votre code directement, ce qui ne nécessite qu'une ligne supplémentaire en bas de page dans ce cas pour appeler le gestionnaire afin d'exécuter son code (tout comme vous l'avez fait dans votre code Python : "{applescript.read()}\nmyHandler()"
) :
osascript <<-'osa'
on myHandler()
display dialog ("I'm your Handler!")
end myHandler
myHandler()
osa
Si vous stockez votre script dans un fichier situé à l'adresse suivante ~/Documents/myscript.applescript
puis vous pouvez passer le fichier dans osascript
comme ça :
osascript ~/Documents/myscript.applescript
Bien sûr, vous devrez toujours inclure l'appel à votre gestionnaire dans votre fichier .applescript
c'est-à-dire une ligne supplémentaire à la fin ou au début de votre script qui dit simplement myHandler()
Si vous vouliez passer un paramètre de ligne de commande pour rendre le contenu du dialogue plus dynamique, vous pouvez modifier votre script pour qu'il ressemble à ceci :
property text item delimiters: space
on run input as text
myHandler(input)
end run
on myHandler(msg as text)
local msg
display dialog msg
end myHandler
Puis appelez-le depuis la ligne de commande comme ceci :
osascript ~/Documents/myscript.applescript "It worked!"
Avec un peu de chance, si j'ai anticipé correctement la mise en place de mon exemple de script, cela devrait fonctionner sans les guillemets :
osascript ~/Documents/myscript.applescript Do these words have a space between them \?
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.
0 votes
Voir cette question : apple.stackexchange.com/q/257541/119271 Techniquement, c'est une question sans rapport, mais mon code fait ce que vous demandez.
0 votes
Mais comment appeler dynamiquement une sous-routine à partir des arguments de la ligne de commande ?
0 votes
Le site
run
peut accepter des arguments, consultez ma réponse à l'adresse suivante stackoverflow.com/a/57648526/10853463