# Curiosité de xdotool type ou comportement normal?

**URL:** <https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236>\
**Category:** Programmation\
**Created:** [Mai 24, 2023, 6:47 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236 "2023-05-24T06:47:54Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Mai 24, 2023, 6:47 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/1 "2023-05-24T06:47:54Z")

</div>

**ceci est juste au cas où ça inspire un commentaire , sans plus .**

en mettant au point la commande _xdotool type «&nbsp;adresse-1&nbsp;»_ j’ai observé un genre d’écho dans la façon dont cette commande s’exécute . Mais peut-être est-ce un comportement normal du shell ?

```plaintext

 mm@ldlc:~$ xdotool type "hello"
hellomm@ldlc:~$ hello^C ---> j'ai utilisé Ctrl + C pour remettre le prompt à zéro

mm@ldlc:~$ xdotool type "hello1" ; echo "hello2"
hello1hello2
mm@ldlc:~$ hello1  

```

( 2ème partie effacée car mélange de 2 choses différentes )

Edit : bien possible que la réponse , pour la 1ère commande , soit dans ce commentaire :

> Whenever anything is typed in to the terminal it is echoed. This is what are seeing. When bash restarts it sets the terminal to raw in order to handle all the special characters and editing etc, and so also turns off echo. It then reads what `xdotool` has typed, and dutifully echoes it.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Mai 24, 2023, 11:42 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/2 "2023-05-24T11:42:18Z")

</div>

> [@zao](#):
>
> ```auto
> mm@ldlc:~$ xdotool type "hello"
> hellomm@ldlc:~$ hello^C ---> j'ai utilisé Ctrl + C pour remettre le prompt à zéro
> 
> ```

C’est normal, xdotool type simule une frappe au clavier, d’où le CTRL-C pour arrêter.

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Mai 24, 2023, 12:22 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/3 "2023-05-24T12:22:33Z")

</div>

j’avais trouvé un moyen de le faire automatiquement mais ça sort 2 lignes supplémentaires car je suppose que bash en lisant ce qui apparaît après l’invite de commandes l’interprète comme étant une commande , c’est ce qu’il écrit, et en affiche la sortie , introuvable dans ce cas .

```nohighlight
mm@ldlc:~$ xdotool type "adresse-1" ; xdotool key Return
adresse-1
mm@ldlc:~$ adresse-1
bash: adresse-1 : commande introuvable
mm@ldlc:~$ 

```

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Mai 24, 2023, 6:26 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/4 "2023-05-24T18:26:26Z")

</div>

oui c’est exactement ça.

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Mai 24, 2023, 7:31 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/5 "2023-05-24T19:31:20Z")

</div>

```auto
$ printf 'Hello1\nHello2\n'
Hello1
Hello2

```

```auto
$ xdotool type 'printf "Hello1\nHello2\n"' ; xdotool key Return
printf "Hello1\nHello2\n"
$ printf "Hello1\nHello2\n"
Hello1
Hello2

```

Après, à quoi ça sert d’envoyer du texte (et non des commandes) dans un terminal bash, plutôt que dans une application qui comprend le texte, c’est une autre question optionnelle.

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Mai 24, 2023, 7:52 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/6 "2023-05-24T19:52:43Z")

</div>

> [@Verner](#):
>
> Après, à quoi ça sert d’envoyer du texte (et non des commandes) dans un terminal bash, plutôt que dans une application qui comprend le texte, c’est une autre question optionnelle.

ça n’était pas du tout le but recherché , il s’agit juste d’un genre " d’effet secondaire " de _xdotool_ que je ne comprenais pas et qui était apparu lors de la mise au point de la commande pour la création d’un raccourci clavier pour insérer une adresse courriel dans un document .

note : une autre solution proposée sur le site que j’avais trouvé et qui parlait de cette répétition du texte à insérer était celle-ci :

```plaintext
mm@ldlc:~$ xdotool type 'adresse-1
'
adresse-1
mm@ldlc:~$ adresse-1
bash: adresse-1 : commande introuvable
mm@ldlc:~$ 

```

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Mai 24, 2023, 8:00 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/7 "2023-05-24T20:00:16Z")

</div>

> [@zao](#):
>
> une autre solution proposée sur le site …/…

Ce n’est en aucun cas une ‹&nbsp;_solution_&nbsp;› dans ton cas, et non celui d’un autre, comme tu le constates, puisque bash ne comprendra jamais la commande ‹&nbsp;adresse-1&nbsp;›.

En général, il est beaucoup plus simple de :  
1 - définir ce que l’on veut faire, l’objectif;  
2 - trouver le moyen la commande pour le faire,

plutôt que d’essayer des commandes dans tous les sens, un peu au pif, sans savoir ce qu’on en attend.

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Mai 24, 2023, 8:05 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/8 "2023-05-24T20:05:38Z")

</div>

je me demande si ça peut avoir un intérêt quelconque cet «&nbsp;effet secondaire&nbsp;» car en entrant une vraie commande on peut la faire s’exécuter . Y aurait-il un intérêt pratique à la chose ?

exemple : **xdotool type «&nbsp;vim fichier&nbsp;»** ouvre bien un fichier

Edit : **vraie commande** = commande comprise par _bash_

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Mai 24, 2023, 8:08 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/9 "2023-05-24T20:08:11Z")

</div>

**vim** est une commande comprise par bash.  
**adresse-1** n’est pas une commande.  
Difficile de comprendre ce qui n’est pas compris.  
――――――――――――――――――――――――――

> [@zao](#):
>
> Edit : **vraie commande** = commande comprise par _bash_

Réponse à l’edit:

Bash ne comprend pas qu’exclusivement les ‹&nbsp;vraies&nbsp;› commandes, ou plutôt les ‹&nbsp; **built-in** commands&nbsp;› dont le nombre est très limité:

```plaintext
$ compgen -b
 . : [ alias bg bind break builtin caller cd command compgen complete compopt
 continue declare dirs disown echo enable eval exec exit export false fc fg
 getopts hash help history jobs kill let local logout mapfile popd printf pushd
 pwd read readarray readonly return set shift shopt source suspend test times
 trap true type typeset ulimit umask unalias unset wait 

```

Les commandes couramment utilisées telles que cp, ls, date, etc, ne sont pas spécifiques à bash, et sont fournies par le paquet **coreutils** :

```plaintext
 cat chgrp chmod chown cp date dd df dir echo false ln ls mkdir mknod mktemp mv
 pwd readlink rm rmdir sleep stty sync touch true uname vdir [ arch b2sum base32
 base64 basename basenc chcon cksum comm csplit cut dircolors dirname du env
 expand expr factor fmt fold groups head hostid id install join link logname md5sum
 mkfifo nice nl nohup nproc numfmt od paste pathchk pinky pr printenv printf ptx
 realpath runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum
 shred shuf sort split stat stdbuf sum tac tail tee test timeout tr truncate tsort tty
 unexpand uniq unlink users wc who whoami yes chroot

```

Bash utilise **exec** (built-in) de manière transparente pour lancer plus généralement les exécutables graphiques ou non, tel que `xterm` par exemple.

Le souci relatif à xdotool n’est donc pas la notion de ‹&nbsp;_vraies_&nbsp;› commandes, mais uniquement de comprendre que ‹&nbsp;Hello1&nbsp;› ou n’importe quel ligne de **texte** ne peut pas être comprise par bash, la touche ‹&nbsp;Return&nbsp;› du clavier lançant l’exécution de la supposée ligne de commande.  
Si envoyer des lignes de texte avec xdotool dans un terminal est inutile, sauf preuve du contraire, il n’est probablement pas judicieux d’insister dans cette voie.  
Pour afficher du texte pur dans un terminal, bash comprendra mieux les commandes cat, echo, print, printf etc., lancées à partir d’un script \*sh, ou d’un alias, ou d’une fonction.

---

<div class="post-metadata">

**Author:** ![zao](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/z/ce7236/32.png) [@zao](https://www.debian-fr.org/u/zao)\
**Post date:** [Mai 26, 2023, 7:10 UTC](https://www.debian-fr.org/t/curiosite-de-xdotool-type-ou-comportement-normal/88236/10 "2023-05-26T07:10:21Z")

</div>

je vois qu’il y a une incompréhension à la base de ce que j’écris . Probablement que je suis un peu brouillon .

Mais peu importe , merci pour les commentaires qui m’apprennent toujours quelque chose .
