为什么期望命令在stdin重定向失败的地方工作?

时间:2017-07-20 13:05:09

标签: bash stdin expect

我已经看到,对于某些程序,将文本传递给提示的唯一方法是使用expect命令。

从文件重定向输入或使用" here here"不起作用。 期望会正确传递文字吗?

1 个答案:

答案 0 :(得分:3)

例如,出于安全原因,当ssh需要读取用户的密码时,它不会从stdin读取,这可能是 tty ,< em> file , pipe fifo 。相反,ssh直接打开/dev/tty并从中读取密码,如果存在,则保证为 tty (否则ssh如果{{1}将失败不可用)。

请参阅以下示例(在Linux上):

/dev/tty

Expect做的是创建一个pty并在该pty上运行命令。