2013-04-15 11 views
7

Jestem nowy w pisaniu Skryptów Shell i mam pewne trudności.Przekazywanie tablicy z jednego skryptu Bash do innego

Co chcę osiągnąć

Mam tablicę ciągów w scriptOne.sh że chcą przejść do scriptTwo.sh

Co ja dotychczasowej

Mogę wykonać drugi skrypt z wnętrza pierwszego pliku ./scriptTwo.sh i przekazałem zmienne łańcuchowe z jednego do drugiego za pomocą ./scriptTwo.sh $variableOne.

Problem występuje, gdy próbuję przekazać zmienną tablicową, która nie zostanie przekazana. Udało mi się zmusić go do przekazania pierwszego wpisu tablicy przy użyciu ./scriptTwo.sh "${array[@]}", ale jest to tylko jeden z wpisów i potrzebuję ich wszystkich.

Dzięki z góry za pomoc

+0

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

Odpowiedz

7

swój sposób przekazywania tablicę jest poprawna

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

Problem jest prawdopodobnie w sposób, w jaki sposób otrzymać. W scriptTwo.sh użyć

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

Co się stanie, jeśli przekażę wiele tablic do tego drugiego skryptu? Czy istnieje sposób, aby zadeklarować, który z nich, tj. 'ArrayOne = (" $ 1 @ ")' itp. – StuStirling

+0

@ DiscoS2: Przesyłanie wielu tablic jest znacznie bardziej problematyczne. Możliwe jest, że przed każdym z tablic poprzedzimy rozmiar tablicy, a następnie wypełniamy tablice w drugim skrypcie. – choroba

+0

Dzięki za odpowiedź. Zdecydowałem się zmienić sposób, w jaki przekazywałem dane z jednego skryptu do drugiego, ponieważ ułatwiło to długie błędne, ale dzięki za odpowiedź. To zdecydowanie pomogło! – StuStirling

Powiązane problemy