#1 Le 20/09/2016, à 10:32
- ubuntu47
[Résolu] Logiciel de scripting en ligne de commande
Bonjour je cherche des outils en ligne de commande, dans la lignée de autohotkey ou autoIt sur Windows, Google n'est pas très bavard, et me ressort autokey, qui visiblement ne correspond pas du tout, hormis un nom similaire.
J'ai par ailleurs essayer de les installer grâce à Wine, mais pour autohotkey, j'ai une erreur me disant qu'il ne trouve pas l'icon ... et refuse de me l'installer, et pour autoIt, certaine fonctionnalités fonctionnent, mais pas toute, je reste restreint à manipuler des applications ou fichiers dans Wine, mon but étant de "piloter" Opera (Ubuntu), ça ne semble pas fonctionner.
Les fonctionnalités que je cherche à apporter à mes scripts : Simulation de touches (envoi de texte, ENTER, F11 ..) & Color picker
Des idées ?
Dernière modification par ubuntu47 (Le 23/09/2016, à 10:37)
Hors ligne
#2 Le 20/09/2016, à 13:58
- Nuliel
Re : [Résolu] Logiciel de scripting en ligne de commande
Bonjour,
xdotool est un programme qui permet de simuler l'appui de touches de clavier et de souris. Je m'en suis déjà servi pour me mettre afk sur une ferme à poisson dans minecraft, c'est assez simple à utiliser.
Je ne sais pas si c'est le meilleur choix pour piloter un logiciel surtout si tu veux faire mettre le curseur de la souris à un endroit précis, mais as tu regardé le manuel de opera (man opera dans un terminal)?
Pour color picker, je ne sais pas.
Dernière modification par Nuliel (Le 20/09/2016, à 13:58)
Hors ligne
#3 Le 20/09/2016, à 14:19
- ubuntu47
Re : [Résolu] Logiciel de scripting en ligne de commande
Salut et merci ublender, man opera me retourne
No manual entry for opera
, de se que j'ai pu trouver à droite et à gauche, il n'y a pas beaucoup de paramètres.
Pour xdotools je l'ai trouver entre temps, mais hélas il ne semble pas fonctionner correctement oO
J'ai trouver xautomation qui me permet de faire ce dont j'ai besoin, visiblement un outil très proche de xdotool, mais qui veut bien fonctionner sur mon Ubuntu 16.04.
Pour le color picker, j'ai trouver grabc mais ça reste assez confus à utiliser dans un script, en fait j'aurais besoin de récupérer la valeur de la couleur dans une variable, alors qu'il me la retourne dans le terminal
Hors ligne
#4 Le 20/09/2016, à 14:42
- Nuliel
Re : [Résolu] Logiciel de scripting en ligne de commande
Ah, pas de chance.
Pour le color picker, ça peut s'arranger. Tu utilises quoi: Bash ou c'est du python/C/...?
Si c'est du bash, tu peux extraire la donnée qui t'intéresse par sed et awk. Honnêtement, je ne maîtrise pas ces deux outils (je regarde des exemples sur internet pour récupérer une ligne par exemple) mais je sais que tu peux extraire ce que tu veux avec ça.
Edit: il y a aussi cut qui est plus simple je pense que awk et sed
Dernière modification par Nuliel (Le 20/09/2016, à 14:45)
Hors ligne
#5 Le 20/09/2016, à 15:19
- ubuntu47
Re : [Résolu] Logiciel de scripting en ligne de commande
J'utilise Bash, je n'y connait rien en Python, le truc, c'est comment récupérer cette valeur dans une variable ? en gros actuellement j'ai réussi à faire passer la sorti dans un fichier texte, que je relis ensuite pour mettre le contenu dans une variable :
grabc > SVR1.txt &
colorVal=`cat SVR1.txt`
Il n'existe pas une facon de faire une sorte de grabc > colorVal ?
Merci encore de ton aide
Hors ligne
#6 Le 20/09/2016, à 15:54
- Nuliel
Re : [Résolu] Logiciel de scripting en ligne de commande
colorVal=`grabc` devrait marcher
Hors ligne
#7 Le 20/09/2016, à 18:48
- Hizoka
Re : [Résolu] Logiciel de scripting en ligne de commande
je sais pas si ca peut t'aider mais y a un langage que j'aimerai tester : sikuli.org
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#8 Le 20/09/2016, à 20:38
- Arbiel
Re : [Résolu] Logiciel de scripting en ligne de commande
Bonsoir
Pour extraire une valeur d'un fichier avec sed, tu peux utiliser une commande telle que cela
variable="$(sed -rne "commande de traitement ") fichier"
La syntaxe variable="$(…)" est à mon avis plus lisible que la commande variable='…', même si on peut la confondre avec
variable="${…}. Mais ce n'est là qu'un avis.
Les options -rne
r : indique que l'expression régulière qui vient après dans la commande est une expression étendue
n : indique qu'il ne faut pas envoyer les lignes traitées vers /dev/stdout, sauf indication explicite, également indiquée dans la suite de la commande
e : pour indiquer que la commande à exécuter se trouve dans la ligne de commande, et non dans un fichier
Pour t'indiquer comment rédiger "commande de traitement " il serait bon que tu publies le fichier et ce que tu veux en extraire, et, éventuellement, s'il existe une chaîne de caractères particulière dans la ligne dont tu veux extraire un élément.
En tout état de cause, "man grep" te donne des explications plus complètes que "man sed" pour comprendre comment rédiger une expression dite "régulière", pour traiter les lignes.
Arbiel
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#9 Le 21/09/2016, à 18:42
- k3c
Re : [Résolu] Logiciel de scripting en ligne de commande
je sais pas si ca peut t'aider mais y a un langage que j'aimerai tester : sikuli.org
j'ai testé Sikuli, ça marche, mais c'est galère, tu passes ton temps à prendre des photos des images écran, vu que Sikuli reconnait ces images et fait les actions demandées.
Debian 12 sur Thinkpad reconditionné
Hors ligne
#10 Le 23/09/2016, à 00:51
- ubuntu47
Re : [Résolu] Logiciel de scripting en ligne de commande
Tout d'abord merci à vous,
Pour la commande Sed que je ne connaissais pas et même si cela m'oblige encore à passer par du fichier texte pour stocker des valeurs, j'ai juste envie de dire .... WOW
colorVal=`grabc`
ne fonctionne pas malheuresement.
Après une lecture rapide, il semblerait qu'elle se rapproche un peu plus de se que je voudrais faire, en gros je me servais de plusieurs fichiers textes pour stocker une variable dans chacun, le nom du fichier etant en quelque sorte la variable, et son contenu la valeur de celle-ci, avec Sed plus besoin de xx fichiers différents.
Sikuli effectivement a l'air plutôt pas mal, mais qu'en ai t'il de la rapidité ? j'ai peur que ça ne mouline un petit peu, mais qui c'est, qui ne risque rien n'a rien, je me lance
Hors ligne
#11 Le 23/09/2016, à 05:02
- pingouinux
Re : [Résolu] Logiciel de scripting en ligne de commande
Bonjour,
colorVal=`grabc`
ne fonctionne pas malheuresement.
Pourtant
$ colorVal=`grabc`
255,74,86
$ echo $colorVal
#ff4a56
La valeur hexadécimale est envoyée sur stdout, et les valeurs décimales R,G,B sur stderr.
Il est préférable d'utiliser la syntaxe préconisée par Arbiel en #8
$ colorVal=$(grabc)
58,129,204
$ echo $colorVal
#3a81cc
Édité :
Pour n'avoir que la valeur hexadécimale
$ colorVal=$(grabc 2>/dev/null); echo $colorVal
#3a81cc
Pour n'avoir que les valeurs décimales
$ colorVal=$(grabc 2>&1 1>/dev/null); echo $colorVal
58,129,204
Dernière modification par pingouinux (Le 23/09/2016, à 06:10)
Hors ligne
#12 Le 23/09/2016, à 10:37
- ubuntu47
Re : [Résolu] Logiciel de scripting en ligne de commande
Que dire hormis que je suis confus, je n'ai pas encore l'habitude de stdout et stderr, et j'avoue ne pas avoir testé un echo de ma variable en voyant le retour de la valeur décimale sur stderr.
Merci pour l'explication claire et concise en tous cas et merci encore à vous tous.
Hors ligne
#13 Le 23/09/2016, à 11:24
- pingouinux
Re : [Résolu] Logiciel de scripting en ligne de commande
Prends l'habitude d'utiliser man.
Voici un extrait de man grabc :
............
the color of the clicked pixel is written to stdout in hex prefixed with #.
It will the R, G, B component also in the stderr.
Hors ligne