itd*_*ork 6 ruby windows batch-file
打开irb并且
gets.它应该工作正常.system("choice /c YN")它应该按预期工作.gets一次,它表现得很奇怪.谁能告诉我为什么会这样?
编辑:有关"奇怪"行为的一些说明,它允许我键入gets,但不显示字符,我必须按两次回车键.
终端输入输出处理是黑暗而神秘的艺术。任何试图bash在 Windows 中进行彩色输出的人PowerShell都ssh知道这一点。(像 Ctrl+Backspace 这样的各种快捷键习惯只会让事情变得更糟。)
出现问题的可能原因之一是特殊字符处理。每个终端都可以以多种不同的模式键入字符,并且它会解析自己的输出以搜索某些字符序列以切换状态。
\n\n这里有铁我们可以找到 ANSI 转义码序列,这是不同类型终端之间可能支持的标准之一。
\n\n看那边Esc[5;45m?这将使所有以下输出在洋红色背景上闪烁。类似的东西还有很多。
所以,从字面上看你的问题的答案是 \xe2\x80\x94 你的choice命令使用特殊的转义序列将输出模式搞乱了,而 ruby\'s 在终端操作的那种奇怪的特殊模式中得到了中断。
但更有用的是HighLine gem 文档的链接。当可以用大约 12 个 LOC来实现相同的行为时,为什么人们可能想要实现特定于平台的强制行为呢?对要点的所有尊重都归功于botimer,我只是通过搜索偶然发现了他的代码。
\n| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |