GNU/Linux >> Belajar Linux >  >> Linux

Mengirim penekanan tombol yang disimulasikan di Bash

Anda sedang mencari xdotool.

xdotool setara dengan perintah contoh Anda adalah:

xdotool key 1 Return
xdotool keydown Alt key a keyup Alt

Untuk memasukkan teks ke stdin program, gunakan pipa dan/atau pengalihan:

echo 1 | myprogram

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

myprogram <<EOF
First line
Second line
EOF

Dalam hal program CLI interaktif (bukan full-terminal), adalah mungkin untuk menggunakan pipa bernama atau coprocesses sebagai semacam expect orang miskin (yang Anda kesampingkan karena menjadi 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]}

(Hati-hati saat membaca dari pipa keluaran; misalnya head -1 <out tidak hanya membaca satu baris – ini akan menyangga satu blok 4k penuh, mencetak satu baris, membuang sisanya.)


Linux
  1. Bash Echo Baris Perintah Dieksekusi Di Baris Perintah Itu Sendiri (bukan Dalam Script)?

  2. Menggunakan Pernyataan Kasus di Bash

  3. Bash/sh pernyataan 'jika lain'

  1. Sejarah Bash tanpa nomor baris

  2. Periksa apakah ada variabel dalam daftar di Bash

  3. Tambahkan jeda baris ke keluaran perintah

  1. Bagaimana Menggemakan Bang!?

  2. Kelanjutan Baris Bash Setelah &&Dan || Didokumentasikan?

  3. Cara menggemakan Baris Baru di Bash Shell Script