GNU/Linux >> Tutoriales Linux >  >> Linux

Envío de pulsaciones de teclas simuladas en Bash

Estás buscando xdotool.

El equivalente de xdotool de sus comandos de ejemplo son:

xdotool key 1 Return
xdotool keydown Alt key a keyup Alt

Para introducir texto en la entrada estándar de un programa, utilice conductos y/o redirección:

echo 1 | myprogram

(echo "First line"
 echo "Second line") | myprogram

myprogram <<EOF
First line
Second line
EOF

En el caso de programas CLI interactivos (no los de terminal completo), es posible usar canalizaciones con nombre o coprocesos como una especie de expect del pobre (que descartaste por ser Tcl):

mkfifo in out
myprogram <in >out &
echo "First line" >in
read -r reply <out

mkfifo in out
myprogram <in >out &
exec {infd}>in {outfd}<out
echo "First line" >&$infd
read -r reply <&$outfd

coproc foo { myprogram; }
echo "First line" >&${foo[1]}
read -r reply <&${foo[0]}

(Tenga cuidado al leer de la tubería de salida; por ejemplo, head -1 <out no solo leerá una línea:almacenará en el búfer un bloque completo de 4k, imprimirá una línea y descartará el resto).


Linux
  1. ¿Cómo hacer eco de una explosión?

  2. Bash Echo ¿La línea de comando se ejecutó en la propia línea de comando (no en un script)?

  3. Cómo hacer eco de una nueva línea en Bash Shell Scripts

  4. ¿Es posible hacer que un script bash shell interactúe con otro programa de línea de comandos?

  5. Leer línea por línea en bash script

Cómo comentar en Bash

Cómo leer archivos línea por línea en Bash

Cómo leer un archivo línea por línea en Bash

¿Cuál es el uso de $# en Bash?

texto de eco con nueva línea en bash

Agregar salto de línea a la salida del comando