正如评论中指出的那样,makecript可能会向终端倾倒"坏"字符.您可以通过重定向输出来防止这种情况(但可能丢失有用的信息) - 而不是将其发送到终端窗口,您可以将其发送到文件,甚至/dev/null("天空中的大桶").
然而,根本问题是你的makefile甚至首先将这些字符发送到终端.我建议您将输出管道传输到类似的文件make > myDump.txt,然后检查生成的文件以查看发生了什么,以及makefile中创建问题的位置.执行此操作时,您可能仍会获得一些输出 - 这是因为默认情况下仅>重定向stdout,而不是stderr- 用于错误消息的第二个输出流.您可以将两者重定向到文件make 2>&1 myDump.txt.
您已经看到了stty sane用于恢复终端状态的建议- 我在这里重复它,以防有人只查看答案,而不是评论; 但我不赞成它:-).