Sim, talvez. Uma maneira é abrir o TTY e interagir com isso:
#!/usr/bin/env expect
package require Tcl 8.5
gets stdin line; puts "stdin: $line"
set tty [open /dev/tty r+]
chan configure $tty -buffering none
puts -nonewline $tty "nimi sina li seme? "
set name [gets $tty]
gets stdin line; puts "stdin: $line"
puts $tty "name: $name"
Que tem resultados assim, dado o acima salvo em ./prompt
, chmod +x
, instalado expect
, etc.
$ (echo foo; echo bar) | ./prompt
stdin: foo
nimi sina li seme? Bob
stdin: bar
name: Bob
$