Linux 使用脚本自动回答TTY提示
我看到很多关于用提示回复的帖子 回音“是”|您的|脚本 但是,如果提示是通过TTY发出的,那么执行类似于上面的操作会导致异常呢Linux 使用脚本自动回答TTY提示,linux,shell,command-line,tty,Linux,Shell,Command Line,Tty,我看到很多关于用提示回复的帖子 回音“是”|您的|脚本 但是,如果提示是通过TTY发出的,那么执行类似于上面的操作会导致异常呢 程序正在尝试读取用户输入,但stdin正在从其他源(不是TTY)通过管道传输。 从我所读到的内容来看,使用TTY提示似乎是为了提高安全性。这有什么办法吗?很有趣。。。当我尝试echo'a'| read;echo$REPLY,既不在TTY也不在xterm中,但也没有输出。是的,您应该使用像expect这样的插入程序。对于简单的情况,您可以只使用脚本(1):{sleep.1
程序正在尝试读取用户输入,但stdin正在从其他源(不是TTY)通过管道传输。
从我所读到的内容来看,使用TTY提示似乎是为了提高安全性。这有什么办法吗?很有趣。。。当我尝试
echo'a'| read;echo$REPLY
,既不在TTY也不在xterm
中,但也没有输出。是的,您应该使用像expect
这样的插入程序。对于简单的情况,您可以只使用脚本(1)
:{sleep.1;echo yes;}| script/dev/null-qc您的脚本
@Quasímodo您如何知道该脚本正在使用示例中的read
?(哪一个btw被破坏了,它不会设置$REPLY
,也不会回显a
)@mosvy是的,我没有,只是试图重现这种行为。我错过了read
部分是在子shell中运行的,因此$REPLY
将为空echo'a'{read;echo$REPLY;}
但是会输出a
。有趣。。。当我尝试echo'a'| read;echo$REPLY
,既不在TTY也不在xterm
中,但也没有输出。是的,您应该使用像expect
这样的插入程序。对于简单的情况,您可以只使用脚本(1)
:{sleep.1;echo yes;}| script/dev/null-qc您的脚本
@Quasímodo您如何知道该脚本正在使用示例中的read
?(哪一个btw被破坏了,它不会设置$REPLY
,也不会回显a
)@mosvy是的,我没有,只是试图重现这种行为。我错过了read
部分是在子shell中运行的,因此$REPLY
将为空echo'a'{read;echo$REPLY;}
但是会输出a
。