2013-04-15 20 views
7

Ich bin neu beim Schreiben von Shell-Skripten und habe einige Schwierigkeiten.Ein Array von einem Bash-Skript zu einem anderen übergeben

What I Want

erreichen Ich habe ein Array von Strings in scriptOne.sh, die ich

zu scriptTwo.sh übergeben wollen, was ich bisher getan haben

Ich kann das zweite Skript innerhalb des ersten mit ./scriptTwo.sh ausführen und ich habe String-Variablen von einem zum anderen mit ./scriptTwo.sh $variableOne übergeben.

Das Problem ist, wenn ich versuche, eine Array-Variable zu übergeben, die nicht übergeben wird. Ich habe es geschafft, es den ersten Eintrag des Arrays mit ./scriptTwo.sh "${array[@]}" übergeben, aber dies ist nur einer der Einträge, und ich brauche alle von ihnen.

Vielen Dank im Voraus für Ihre Hilfe richtig

+0

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

Antwort

7

Ihr Weg, um die Anordnung von vorbei ist

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

Das Problem wahrscheinlich in der Art und Weise ist, wie Sie es erhalten. In scriptTwo.sh verwenden

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

Was passiert, wenn ich mehrere Arrays an dieses zweite Skript übergebe? Gibt es eine Möglichkeit, zu deklarieren, zB 'arrayOne = (" $ 1 @ ")' usw. – StuStirling

+0

@ DiscoS2: Das Übergeben mehrerer Arrays ist viel problematischer. Es könnte möglich sein, die Array-Größe vor jedem der Arrays vorzugeben und dann die Arrays in das zweite Skript einzufügen. – choroba

+0

Danke für die Antwort. Ich entschied mich dafür, die Art und Weise zu ändern, wie ich die Daten von einem Skript an ein anderes weitergab, da es im langen Fehler einfacher wurde, aber danke für deine Antwort. Es hat definitiv geholfen! – StuStirling

Verwandte Themen