有没有办法在ruby和单行输入中同时进行多行输入(条件用户输入)?

时间:2014-12-30 01:03:06

标签: ruby

我遇到以下问题:

我有一个类似irb的shell,用户可以给出说明。

为此我读了用户输入,如果是Readline则通过Readline读取 模块可用,或通过默认的$ stdin.gets。

默认情况下,$ stdin.gets将以\ n字符结束(如果是用户) 打进去。这适用于大多数情况,但现在我有 必须允许用户输入"'"字符。 如果你看不到这个角色,我的字面意思是' 撇号在'#'正上方大多数键盘上的字符。

如果他这样做,那么记录分隔符必须改为"'"""至, 这样用户就可以进行多行输入。

原因是所需的输入应该是:

data '
foo
bar
bla
'

通常它会是:

data foo
data far
data bla

哪一个适用于单行分配,但不适合 多行分配,因为没有人想通过"数据" 在每一行上,为什么我想要"'""""性格是 只有这种情况下的分隔符,否则默认为\ n换行符。

顺便说一句,它可能是任何其他角色,我只需要 有条件的用户输入。

1 个答案:

答案 0 :(得分:0)

你试过这个吗?

$/ = "'"
user_input = STDIN.gets
puts user_input

它与你想要的不一样,但它会继续输入,直到你给出撇号。