Comment rendre le script shell produire un équivalent des frappes de frappe?

Je veux écrire le script de la coquille, qui fera la même chose que la macro enregistrée et jouera des coups de frappe. En particulier pour la production

ctrl

+

et

.

Est-il possible?

J'ai essayé des choses comme

echo \0141

, mais il dit juste non

command \0141

.
Invité:

Hannah

Confirmation de:

Tu as essayé Expect?

Blanche

Confirmation de:

DANS X11 vous pouvez utiliser
http://www.semicomplete.com/projects/xdotool/
.

xdotool key ctrl+a

Catherine

Confirmation de:

Lorsque l'application est en cours d'exécution, elle réinitialise souvent les caractéristiques du terminal, alors appuyant sur ctrl-a peut être enregistré comme ASCII 1. Ou comme une série de frappes de frappe.

Dans la console ctrl-v ctrl-a Affichage d'appel ^ A, Et vous obtenez

 echo ^A | od -x
0000000 010a

Où 01 - ctrl-a.

Ainsi, l'essence est la suivante:

Afin de "écrire" à quelque chose, vous devez capturer les paramètres du terminal, les souvenir d'eux, puis les réinitialiser pendant la lecture. Dans le scénario Shell, cela signifie une analyse de sortie

stty -a

et le garder dans le format qui vous permet de le renvoyer à stty Pendant la lecture, puis envoyez un flux de données au terminal.

Ceci est grandement compliqué par les pilotes des terminaux, des interfaces graphiques, etc.

Obtenir "faire le ménage" ctrl-a, Utilisation ctrl-v ctrl-a - Seulement dans la console, pas nécessairement dans l'éditeur.

Catherine

Confirmation de:

Des pages de documentation que j'ai récemment fait

Serge est assez fatigué des étapes de développement Web standard:

Enregistrer le fichier

Passer au navigateur (N'importe quelle étiquette .. d'habitude alt + tab)

Actualiser la page

Voir si la page va bien

Retour à l'éditeur

Par conséquent, il a décidé d'automatiser un peu;)

Comment il a corrigé la situation:

Ensemble xdotool

$ sudo apt-get install xdotool

Créer un script xdotool

$ mkdir Documents/scripts
$ vim Documents/scripts/vim-browser-vim.sh
[...]
#!/bin/bash
# Seach for a window having "Coding" in its title and send keys to save current document in vim
xdotool search "Coding" key "Escape" "colon" "w" "Return"
# Search for a window having "Studyladder" in its title, activate it and refresh (In chrome it's Ctrl+r)
xdotool search "Studyladder" windowactivate key "Ctrl+r"
# Seach for a window having "Coding" in its title and activate it
xdotool search "Coding" windowactivate
[...]
chmod u+x Documents/scripts/vim-browser-vim.sh
Connectez le script à l'étiquette

DANS GNOME: Barre de tâches> Système> Paramètres> Touches de clavier> Ajouter

Nom: vim-browser-vim Équipe: /home/srivest/Documents/scripts/vim-browser-vim.sh

Puis appliquer.

Attribuez ensuite une combinaison de touches en fonction de votre choix. j'ai utilisé Ctrl + 2, Je sens juste que le doigt est paresseux et doit être consulté;)

Cliquez sur Fermer.

Changez le nom de votre console sur «Coding», Au script xdotool Pourrait le trouver.

Maintenant, vous pouvez exécuter le script en cliquant sur l'étiquette!

La vie change! Hehe ..

-

Correction des problèmes:

Si le script ne fonctionne pas, vous devez rechercher:

installée xdotool

Fichier de script exécutable

Si toutes les fenêtres sont présentes, si leur ligne de course correspond à l'en-tête de script. Par exemple, dans cet exemple, je recherche des études. Si l'onglet Navigateur n'est pas ouvert sur la page Studyladder, Le titre ci-dessus ne contiendra pas studyladder, Et la fenêtre ne sera pas trouvée.

Beaucoup de fenêtres avec les mêmes noms ... éviter. Vous pouvez explorer des piles. xdotool, Si vous n'attendez pas comme ça.

Chemin vers le script dans l'étiquette GNOME droit.

PS: N'essayez pas de créer ALT + TAB Et d'autres touches combo sur le bureau. Il fonctionnera vraiment dans la console, mais pas lors du lancement du système d'étiquettes gnome. Je suppose que ce code de l'étiquette lance le script dans son propre bac à sable et la génération de choses comme Alt + Tab Pour changer l'application, il ne fonctionnera pas car il n'y a pas d'applications dans ce sable. L'horloge gaspillée gaspillée, essayant de le faire fonctionner.

Pour répondre aux questions, connectez-vous ou registre