2017-06-17 100 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位版本,而且脚本现在可以完成预期的功能。问题没有解决,但绕过了。

感谢所有看过的人!