Recientemente he estado tratando de escribir un script que pueda usarse para automatizar mi programa c ++ en bash. Si conoce AutoIt, simplemente puedo mostrarle un ejemplo de lo que estoy tratando de hacer:
send("1{enter}")
o
send("!a")
OK Para aquellos que no hablan AutoIt:
El primer ejemplo envía una pulsación simulada "1" seguida de un enter (CR)
El segundo ejemplo envía alt-a
Estoy tratando específicamente de hacer esto en bash . Ningún otro lenguaje de script servirá
Además, no preferiría una cucharada. Por favor, especifique cómo escribirlo . No se permite escribir el guión para mí.
linux
bash
automation
Ishan
fuente
fuente
Respuestas:
Para alimentar texto en la entrada estándar de un programa, use tuberías y / o redirección :
En el caso de los programas de CLI interactivos ( no los de terminal completo), es posible usar tuberías o coprocesos con nombre como una especie de pobre
expect
(lo que descartó por ser Tcl):(Tenga cuidado al leer desde la tubería de salida; por ejemplo
head -1 <out
, no solo leerá una línea, almacenará un bloque completo de 4k, imprimirá una línea, descartará el resto).fuente
grep
ycurl
son buenos ejemplos de esto. Un programa de terminal completo es algo que toma el control de toda la ventana, comovim
yscreen
.Estás buscando xdotool .
El equivalente de xdotool de sus comandos de ejemplo son:
fuente