Est-il possible de joindre des lignes d'applescript en une seule (en ruby cela peut être fait en utilisant ;
)?applescript oneliner
Répondre
Pas vraiment. Le plus qui peut être fait est de prendre une déclaration if-then
simple et en faire une ligne ...
if (variable) then
return true
end if
... devient ...
if (variable) then return true
Si vous deviez inclure le osascript
commande dans un script shell, puis plusieurs scripts de ligne doit délimité par -e
...
osascript -e 'if (variable) then' -e 'return true' -e 'end if'
Mais ce qui est de l'ampleur de celui-ci. Les fichiers Applescript ne sont pas des fichiers texte simples comme la plupart des autres langages de programmation (malheureusement) et nous devons compter sur ses éditeurs spécialisés pour la gestion de ligne.
Si vous voulez vraiment éviter -e
et forcer tout sur une seule ligne, vous pouvez pousser tout à travers echo
osascript -e "`echo -e \"tell application \\"MyApp\\"\nactivate\nend tell\"`"
Où "
deviennent \\"
et deviennent les nouvelles lignes \n
.
Ceci n'est pas nécessaire. Juste 'osascript -e $ 'dit à l'application" MyApp "\ nactiver \ nend dire' 'suffit. –
Cela dépend de votre code. Lorsque vous utilisez AppleScript pour les scripts GUI, vous pouvez souvent écrire un groupe de blocs tell imbriqués en une seule ligne.
Par exemple, ces blocs TELL imbriqués:
tell application "System Preferences"
activate
end tell
tell application "System Events"
tell application process "System Preferences"
tell window "System Preferences"
tell scroll area 1
tell button "General"
click
end tell
end tell
end tell
end tell
end tell
Ils pourraient aussi être écrits comme:
tell application "System Preferences" to activate
tell application "System Events" to tell application process "System Preferences" to tell window "System Preferences" to tell scroll area 1 to tell button "General" to click
Cela peut être utile pour les personnes qui arrivent ici de la recherche, mais cela ne permet pas de joindre ces deux appels en une seule ligne – tig
Je réarrangé AppleScript d'un format de bloc, à un seul format de ligne en tant que telle :
format bloc
tell application <application>
activate
open location <url>
end tell
format ligne unique
osascript -e "tell application \"<application>\" to activate & open location \"<url>\"";
Que voulez-vous faire? Voulez-vous avoir un morceau de commandes que vous pouvez exécuter à la demande? –
Je l'ai demandé il y a un an, il est un peu difficile de se souvenir exactement :) Je pensais que je pensais qu'il s'agissait d'utiliser 'osascript -e ...' – tig