2013-03-28 45 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