如何在 GO 应用程序处于管道中时提示用户输入



我的 GO 应用程序需要从管道接收它的输入,同时必须提示用户输入密码。因为我不喜欢在命令参数中设置密码,所以我想像sudo命令一样实现它。

如果我尝试从 stdin 读取,我将收到最后一个命令输出作为密码(显然(。我也尝试使用这个库 https://github.com/howeyc/gopass 但它只能从标准读取。

有没有办法在 GO 中做到这一点?

你不能

,这与go无关。当你通过管道连接到一个程序时,你正在将一个程序的stdout定向到该程序的stdin,而不是tty(stdin通常会附加到什么(。一个程序只获得一个 stdin,因此您不能同时接收从另一个程序的输出通过管道传输的输入,以及从用户的 tty 接收输入。

最新更新