如何将Ruby标准输出存储到多个变量?
例如,如果我有:
puts "hello"
puts "thanks"
我如何存储"你好"并且"谢谢"两个不同的变量,如strVar
(包含值" hello")和strVar2
(包含值"感谢")。
在我的脚本中,我正在调用另一个Ruby脚本,它将puts
多个字符串转换为标准输出。如何单独存储标准输出中的每个字符串?
答案 0 :(得分:0)
我不确定我是否理解这个问题,但是有无数种方法可以存储/打印字符串。很难想象一种情况,即puts
之后的值不会手动输入或以编程方式设置。
您可以使用gets或$ stdin.gets保存输入变量,也可以将其作为ARGV数组的参数保存。例如:
puts "Enter the first string"
var0 = $stdin.gets.chomp
如果您已保存值
var1 = "hello"
var2 = "thanks"
array = [var1, var2]
hash = {:key1 => var1, :key2 => var2}
puts var1
puts var2
array.each do |str| puts str end
hash.map do |k, v| puts v end
答案 1 :(得分:0)
您基本上将应用程序/脚本链接在一起。有多种方法可以做到,但最简单的路径使用STDIN / STDOUT管道。
一个简单的例子就是使用两个小脚本。将其保存为test.rb:
puts 'foo'
puts 'bar'
这是test2.rb:
v1 = gets.chomp
v2 = gets.chomp
puts "v1=#{v1} v2=#{v2}"
然后,在命令行使用:
ruby test.rb | ruby test2.rb
将输出:
v1=foo v2=bar
|
是我们如何将一个脚本的输出链接到另一个脚本的输入而不是Ruby的一部分,它是操作系统的一部分。
这是有效的,因为默认情况下,puts
写入STDOUT,gets
从STDIN读取。 |
将它们连接在一起。