Wie kann ich Variablen deklarieren, die lokal für Funktionen sind? Normal deklarierte Variablen werden in den globalen Gültigkeitsbereich exportiert. Beispiel:
$ cat t.sh
function locals_test()
{
x="bar"
}
$ echo $x
$ locals_test
$ echo $x
bar
Antwort1
Verwenden local
:
local x=bar
Dann x
ist lokal für die Funktion. Um beispielsweise Arrays oder Zahlen zu deklarieren, local
werden dieselben Optionen wie verwendet declare
. Die Ausgabe besteht aus zwei leeren Zeilen:
#!/bin/bash
function locals_test()
{
local x=bar
}
echo $x
locals_test
echo $x