标签: linux expect
我曾尝试通过I / O重定向输入密码,例如echo <password> | ssh <user>@<host>,但它当然没有用。然后我得到ssh实际上直接从/ dev / tty而不是STDIN读取密码,因此I / O重定向不起作用。
echo <password> | ssh <user>@<host>
据我所知,Expect脚本是此类工作的标准方式。我很好奇Expect如何运作?我猜它在子进程中运行目标程序,并且它改变子进程的/ dev / tty以引用另一个地方,但我不知道如何。
答案 0 :(得分:1)
它使用一种称为伪TTY的东西,它像TTY一样查看被调用的程序,但允许编程控制。参见例如Don Libes' Exploring Expect p498f