2012-06-25 181 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