2012-06-25 151 views
1

我想从红宝石哈希值传递给bash脚本..什么是最好的方式来做到这一点?大小和红宝石键/值对总是不同的..将红宝石从红宝石传递给bash脚本?

,所以如果我想是这样..

hsh = {"key1"=>"value1", "key2"=>"value2"} 
%x[sh script.sh #{hsh}] 

我需要在bash的一侧是什么?

编辑:如果在Ruby端哈希将无法正常工作,我可以用另一种数据结构,我关心的是,容器(散/阵列)的大小将永远不同..

编辑2:“关心大小”我的意思是散列/数组将有不同数量的元素每次..。对不起的

+0

如果您只关心尺寸,为什么不通过尺寸而不是数据? –

+0

对不起,我的意思是大小可以变化(散列可以有5,7,9,20等..键/值对..) – Stpn

回答

1

您可以打印Ruby脚本中的值并在Bash脚本中读取它们。你需要Bash 4才能使用关联数组,或者你可以迭代这些值并在读取它们时对它们进行操作。为什么不在Ruby脚本中做你想做的事情呢?

# works with Bash 3 or 4 
while read -r key value 
do 
    echo "$key $value" # act on the keys and values 
done < <(ruby-script) 
+0

谢谢你我会尝试。我使用bash为命令行工具构建了一些复杂的参数。但是也许你是对的,应该在Ruby中尝试。再次感谢。 – Stpn