J'utilise parfois une application tierce avec un terminal intégré pour écrire et/ou tester un script. J'ai écrit ce court applescript pour effacer complètement l'écran du terminal quelle que soit l'application que j'utilise. Je l'ai défini comme une fonction en haut de certains de mes script. Je n'ai jamais eu de problème jusqu'à aujourd'hui, où j'ai lancé ce script dans une application de type while true
boucle.
clear(){
osascript -e \
'set theApp to (get the path to the frontmost application) as text
set this_app to the name of application theApp
activate application this_app
tell application "System Events" to keystroke "k" using command down'
}
Il est évident que faire tourner ça à l'infini n'est pas une bonne chose. J'ai été obligé d'éteindre manuellement l'ordinateur parce qu'il était bloqué dans l'application la plus en avant en frappant cmd k sans fin. Y a-t-il une meilleure façon d'écrire ceci pour que cela ne se reproduise pas ?
0 votes
Il n'y a rien de mal avec la fonction en soi, mais ne l'appelez pas dans une boucle sans fin ! Cela dit, personnellement, je préfère taper
K
deux frappes de clavier contreclear
cinq frappes, car il semble insensé de taper cinq frappes alors que deux suffisent ! Si je devais l'utiliser, je l'appelleraisc
alors c'est sur une seule touche :) N'est-ce pas là tout l'intérêt d'utiliser des ordinateurs... moins d'entrées, plus de sorties. :)0 votes
Lol assez juste. Le nom est juste pour que je n'oublie pas ce qu'il fait. C'est plus une question d'automatisation que de nombre de frappes, mais je vois ce que tu veux dire. Bon point.
0 votes
Pourquoi ne pas simplement taper ctrl+l dans le terminal ?
0 votes
@Mark ctrl+l efface l'écran mais vous permet toujours de faire défiler vers le haut pour voir ce qui était à l'écran au-delà de ce qui vient d'être effacé. K efface entièrement l'écran.