2013-04-15 122 views
7

我是新手,編寫Shell腳本並遇到一些困難。將數組從一個Bash腳本傳遞到另一個

我想要的東西,實現

我在scriptOne.sh字符串,我想傳遞給scriptTwo.sh

我做了什麼到目前爲止

數組我可以使用./scriptTwo.sh從第一個腳本內部執行第二個腳本,並使用./scriptTwo.sh $variableOne將字符串變量從一個傳遞到另一個腳本。

問題是當我嘗試傳遞一個數組變量時,它不會傳遞。我已經設法使用./scriptTwo.sh "${array[@]}"來傳遞數組的第一個條目,但這只是其中的一個條目,我需要所有這些條目。

預先感謝您的幫助

+0

相關:http://stackoverflow.com/questions/31726705/how-to-pass-an-argument-with-space-from-bash-script-to-bash-script –

回答

7

你傳遞數組的方式是正確的

./scriptTwo.sh "${array[@]}" 

這個問題可能是你如何得到它的方式。在scriptTwo.sh,使用

array=("[email protected]") 
+0

如果我將多個數組傳遞給第二個腳本,該怎麼辦?有沒有辦法來聲明哪一個'arrayOne =(「$ 1 @」)'等 – StuStirling

+0

@ DiscoS2:傳遞多個數組更有問題。不過,可以在每個數組之前加上數組大小,然後在第二個腳本中填充數組。 – choroba

+0

感謝您的回覆。我決定改變我將數據從一個腳本傳遞到另一個腳本的方式,因爲它可以避免長時間的錯誤,但感謝您的回答。它絕對有幫助! – StuStirling

相關問題