Saya baru-baru ini mencoba menulis skrip yang dapat digunakan untuk mengotomatisasi program c ++ saya di bash. Jika Anda tahu AutoIt, saya bisa menunjukkan kepada Anda contoh dari apa yang saya coba lakukan:
send("1{enter}")
atau
send("!a")
OK Untuk mereka yang tidak berbicara AutoIt:
Contoh pertama mengirimkan simulasi keystroke "1" diikuti oleh enter (CR)
Contoh kedua mengirimkan alt-a
Saya secara khusus mencoba melakukan ini di bash . Tidak ada bahasa scripting lain yang akan dilakukan
Juga, saya tidak akan memilih spoonfeed. Silakan tentukan cara menulisnya . Tidak diizinkan menulis skrip untuk saya.
linux
bash
automation
Ishan
sumber
sumber
Jawaban:
Untuk memasukkan teks ke stdin program, gunakan pipa dan / atau pengalihan :
Dalam hal program CLI interaktif ( bukan yang terminal penuh), dimungkinkan untuk menggunakan pipa atau coprocess bernama sebagai semacam orang miskin
expect
(yang Anda singkirkan karena menjadi Tcl):(Hati-hati saat membaca dari pipa keluaran; mis. Tidak
head -1 <out
akan hanya membaca satu baris - itu akan buffer satu blok 4k penuh, cetak satu baris, buang sisanya.)sumber
grep
dancurl
merupakan contoh yang baik untuk ini. Program terminal penuh adalah sesuatu yang mengendalikan seluruh jendela, sepertivim
danscreen
.Anda sedang mencari xdotool .
Setara dengan xdotool dari contoh perintah Anda adalah:
sumber