【发布时间】:2021-11-10 02:22:48
【问题描述】:
我有一个以交互方式登录用户的程序。我使用 heredoc 来自动化这个过程。
./login <<EOF
user1@test.com
password
EOF
我期待输出会是这样的。这是我在没有 heredoc 的情况下运行程序并自己输入用户名和密码时显示的内容。
$ ./login
Enter your email: user1@test.com
Enter your password: password
Successfully logged in.
但是,我只看到了这个。
$ ./login
Enter your email:
Enter your password:
Successfully logged in.
如您所见,所有的heredoc 输入都没有打印出来,即使程序似乎正确地获取了标准输入。这是什么原因?如果我仍然可以看到这些输入来帮助我调试问题,那就太好了。谢谢。
【问题讨论】:
-
你标记了 bash 和 zsh;你是用一个,另一个,还是两者都用? (看起来你的
./login脚本只会使用一个...... -
看到输入回显到终端是一种特殊情况,当终端本身是标准输入时。标准输入通常不会得到回显。