2017-06-17 138 views
4

我在Windows 7上安裝了Cygwin x64,但沒有更改默認設置。我從Cygwin多年來一直在愉快工作的另一臺PC上覆制家庭環境。這一次登錄(bash)時會出現無盡的錯誤,我已經縮小到了以下問題。這個非常小的腳本在正常調用時的行爲與採購源不同。Cygwin bash腳本出錯時管道上出現錯誤

​​

腳本的輸出通常調用:

test 
test 
test 
test 
test 
test 

腳本的輸出源時:如子殼顯然我安裝破碎將要執行的代碼內

test 
test 
test 
tt 
test 
tt 

管道。

我錯過了一些明顯的東西嗎?有沒有我不知道的魔術設置會突然讓所有事情都恢復正常?

+3

你使用的是什麼版本的'bash'?我無法重新創建結果。即使在採購時,我也會爲每一行獲得完整的「測試」輸出。將它保存在't.sh'中並運行'./ t.sh'或'source t.sh'都適用於我。 –

+0

找到與管道中的緩衝有關的事情。 https://unix.stackexchange.com/questions/25372/turn-off-buffering-in-pipe 可能相關? –

+1

你確定你的登錄shell是'bash'嗎?源代碼腳本在運行它的同一個shell中運行,所以如果這是一個不同的shell,它可能會解釋奇怪的行爲。 –

回答

0

所以,最後,這絕對是安裝過程中的一些東西,而且我不打算再深究。我已經安裝了Cygwin的32位版本,而不是64位版本,而且腳本現在可以完成預期的功能。問題沒有解決,但繞過了。

感謝所有看過的人!