将bash中的空格分隔字符串转换为ruby中的列表

时间:2018-02-06 02:44:11

标签: ruby bash vagrantfile

我有一个空格分隔的IP字符串,我将其导出到我想要迭代的Vagrant文​​件。

export IP="10.10.10.10 10.10.10.11"

我想对此执行操作,因此它成为vagrantfile中的一个列表来迭代。

["10.10.10.10", "10.10.10.11"]

这样做的方法是什么?

4 个答案:

答案 0 :(得分:2)

尝试在bash中自己解决:

$ export IP="10.10.10.10 10.10.10.11"
$ irb  # interactive ruby
> puts ENV['IP']  # make sure IP is not nil
10.10.10.10 10.10.10.11 # output
> IPs = ENV['IP'].split 
> puts IPs

Vagrantfile是一个Ruby脚本,因此您可以在其中使用ENV['IP'].split

答案 1 :(得分:1)

以下内容应该是健全的。您不需要担心字符串开头或结尾处的空格字符填充,也不需要担心空格字符的不规则序列。

"10.10.10.10 10.10.10.11".scan(/\S+/)
# => ["10.10.10.10", "10.10.10.11"]

答案 2 :(得分:1)

您可以直接使用Split,例如

" now's  the time".split        
=> ["now's", "the", "time"]
>> "10.10.10.10 10.10.10.11".split
=> ["10.10.10.10", "10.10.10.11"]
>> "10.10.10.10   10.10.10.11".split
=> ["10.10.10.10", "10.10.10.11"]
>> "   10.10.10.10   10.10.10.11".split
=> ["10.10.10.10", "10.10.10.11"]
>> "".split
=> []

阅读文档here

要在vagrant文​​件中包含变量,请参阅this

答案 3 :(得分:0)

以简单的方式使用拆分

"10.10.10.10 10.10.10.11".split(' ')
=> ["10.10.10.10", "10.10.10.11"]