GNU/Linux >> Znalost Linux >  >> Linux

Odesílání simulovaných úhozů v Bash

Hledáte xdotool.

Ekvivalenty vašich příkladů příkazů xdotool jsou:

xdotool key 1 Return
xdotool keydown Alt key a keyup Alt

Chcete-li vložit text do standardního kódu programu, použijte roury a/nebo přesměrování:

echo 1 | myprogram

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

myprogram <<EOF
First line
Second line
EOF

V případě interaktivních programů CLI (ne full-terminální), je možné použít pojmenované roury nebo koprocesy jako druh chudáka expect (což jste vyloučili, protože je 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]}

(Buďte opatrní při čtení z výstupního potrubí, např. head -1 <out nepřečte pouze jeden řádek – uloží do vyrovnávací paměti jeden celý 4k blok, vytiskne jeden řádek a zbytek zahodí.)


Linux
  1. Pokračování bash line po &&a || Zdokumentováno?

  2. Bash Echo Příkazový řádek spuštěn na samotném příkazovém řádku (ne ve skriptu)?

  3. Jak zopakovat nový řádek ve skriptech Bash Shell

  1. Bash/sh příkaz „jestli je to jinak“.

  2. Historie Bash bez čísel řádků

  3. Zkontrolujte, zda existuje proměnná v seznamu v Bash

  1. How To Echo A Bang!?

  2. Použití případových prohlášení v Bash

  3. Bash, pokud na jednom řádku