Обычно expect
был написан для:
expect -c 'spawn -noecho vi; send "iHello World!\r\33"; interact'
В то время как expect
был написан для TCL за несколько дней до perl
или python
] в настоящее время популярны аналогичные модули для perl
или python
.
Другой вариант - отправить TIOCSTI
ioctls на ваше устройство tty для вставки символов (по одному байту) в его входную очередь:
perl -le 'require "sys/ioctl.ph";
ioctl(STDIN, &TIOCSTI, $_) for split "", join " ", @ARGV
' $'iHello World!\r\e'; vi
Это позволяет избежать дополнительного псевдотерминального уровня между эмулятором терминала и приложением (здесь vi
).
man vmtouch
:
vmtouch opens every file provided on the command line and maps it into virtual memory with mmap(2). The mappings are opened read-only. It recursively crawls any directories and does the same to all files it finds within them.