habe ein Bash-Script, welches Funktionsaufrufe nutzt und dabei Zugriff auf globale Variablen hat.
Schematisch sieht es in etwa so aus:
Code: Alles auswählen
Globale_Variable=''
funktion_a()
{
Globale_Variable="$Globale_Variable, $1"
}
funktion_b()
{
... code ...
funktion_a("ZusatzString")
... code ...
echo '1' # ReturnWert
}
# 'main':
... code ...
Result=$(funktion_b)
echo "$Globale_Variable"
Ich möchte vom 'main'-Code aus 'funktion_b' aufrufen, und diese ruft dann die 'funktion_a' auf.
Problem:
Der [neue] Inhalt der 'Globale_Variable' wird zwar in 'funktion_a' zugeordnet (festgestellt in 'funktion_a' durch: echo "$Globale_Variable" >> ./test.text), kommt aber im 'main'-Code nicht an - soll heissen, die Variable 'Globale_Variable' hat die Zuordnung, die un 'funktion_a' geschieht nicht (oder wenn's der erste Aufruf war, ist sie leer).
Ich habe den verdacht (da $uchmaschine nix ausgespuckt hat), dass es mit dem Aufruf '$(funktion_b)' im 'main'-Code zu tun hat. Aber ich brauche den ReturnWert von 'funktion_b'.
Wie kommt es zu solch einem seltsamen Verhalten und wie könnte ich es lösen?
Grüsse
worker