我正在编写一个命令行工具。其中一个功能(当然不是唯一的)是可以从stdin读取输入。我测试时通过手动输入来进行交互(而不是使用cat命令),但当我注意到我不知道如何向它发送EOF时,我陷入了困境。
今晚我花费了很多时间在谷歌上搜索,但没有找到有用的信息。 我也在Stack Overflow上搜索过。如果有重复的问题,请随时指出,但我保证我已经尽力了。
编辑:可能有用(?)的是,我在Windows上进行这个操作。所以我相信终端基本上是一个品牌化的MinGW?
今晚我花费了很多时间在谷歌上搜索,但没有找到有用的信息。 我也在Stack Overflow上搜索过。如果有重复的问题,请随时指出,但我保证我已经尽力了。
编辑:可能有用(?)的是,我在Windows上进行这个操作。所以我相信终端基本上是一个品牌化的MinGW?
Ctrl-C
可以终止进程却不打印任何东西,所以我认为它没有起作用。 然而,在执行Ctrl-Z <Enter>
后,它起作用了。对于那些在我之后使用此方法的人,请注意:似乎无法在一行的末尾使用该方法。它需要单独占一行。谢谢,@Brendan。 - burfl1 [sig] bash 804!sigpacket :: process:抑制信号18以win32进程(pid 2032)
。 - Josiah Yodersome-prog
,然后尝试此操作,似乎会生成“抑制信号18以win32进程”警告,但是在Git Bash Windows 10中使用cat | some-prog
似乎效果更好,然后正常的Ctrl-D似乎可以关闭stdin。来自 https://dev59.com/eGUo5IYBdhLWcg3w5i5M#70293204 - thepudds