2013-03-28 116 views
2

我在写一个命令行工具。这个工具可以做的事情之一(当然不是唯一的)是从标准输入读取它的输入。当我注意到我不知道如何向E​​OF发信号时,我正在交互式地测试(通过输入输入,而不是抓取文件)。如何向Git Bash终端发送EOF信号?

今晚我花了大量的时间搜索一下,没有发现有用的东西。我搜索了,以及。请随时指出我有重复的问题,但我保证尽职尽责,我保证。

编辑:这可能是有帮助的(?)提及我在Windows上这样做。所以我相信终端或多或少是一个品牌MinGW?

回答

3

如果您想在Windows下向EOF发送程序输入,则需要Ctrl-Z

+0

我曾尝试过,但感到困惑,它在屏幕上直接打印“^ Z”。 “Ctrl-C”终止进程而不打印任何东西,所以我认为它不起作用。但是,在执行'Ctrl-Z '之后,它就起作用了。 对于那些追随我的人来说,这似乎并不适用于行尾。它似乎需要在自己的路线上。 谢谢@Brendan。 – burfl 2013-03-28 02:54:55

1

它是^ D,传输ASCII字符结束。所有GNU-userland工具都将使用POSIX标准。

+0

这是Windows上的情况吗?我只是尝试将^ D发送给GnuWin32的'cat'命令,并没有做任何事情。按预期^ Z确实退出了猫。 – 2013-03-28 02:52:07

+0

^D没有工作。程序读取它并将其解释为文字“^ D”。 – burfl 2013-03-28 02:57:47

+0

这就是Ctrl-D,而不是两个字符的插入符号序列。我经常在Windows上使用git bash,所以我已经知道它了,我在回答之前在shell中测试了它,仅仅是因为我恰好在momeent的Windows上,而我现在用'cat'再次尝试了它。我可以在这里说的是,“适合我”。对不起,我没有更好的解释。 – jthill 2013-03-28 03:04:15