我正在编写一个 Ruby 命令行应用程序,用户必须在其中输入一个“格式字符串”(很像 Date.strptime/strftime 的字符串)。
我尝试将它们作为命令的参数,例如
> torque "%A\n%d\n%i, %u"
但似乎 bash 实际上在处理之前从输入中删除了所有反斜杠(加上空格的很多麻烦)。我还尝试了highline gem,它有一些更高级的输入选项,但它会自动转义反斜杠 "\" -> "\\" 并且不提供替代选项。
我目前的解决方案是进行查找和替换:“\\n”->“\n”。这会解决这个问题,但它看起来也很糟糕而且很糟糕。
我可以让用户将字符串写入文本文件(对用户来说很复杂)或将其他一些字符(如“&&”)视为换行符(对用户来说仍然很复杂)。
用户在命令行上输入转义字符的最佳方式是什么?
(更新:我检查了 strptime/strftime 的文档,这些函数的格式字符串用“%n”替换换行符,用“%t”替换制表符等。所以现在我正在这样做,但还有其他建议受欢迎的)