Soweit ich weiß, gibt es zwei Möglichkeiten, lokale Variablen in einer bash-Funktion zu erstellen: Erstellen Sie eine Subshell oder deklarieren Sie jede Variable als lokal.Lokale Variablen in bash: local vs. subshell
Zum Beispiel:
# using local
function foo
{
local count
for count in $(seq 10)
do
echo $count
done
}
oder
# using subshell
function foo
{
(
for count in $(seq 10)
do
echo $count
done
)
}
Obvisously die Version der Sub-Shell mit einfacher ist zu schreiben, weil Sie müssen nicht interessieren alle Variablen lokal deklarieren (ganz zu schweigen (Umgebungsvariablen), die von Tools wie getopts) erstellt/exportiert werden. Aber ich könnte mir vorstellen, dass das Erstellen einer Subshell einen Overhead hat.
Also, was ist der bessere Ansatz? Was sind die Vor-/Nachteile?
verlassen wird, laufen auch die 'Time' Befehl über 1000 Tests und finden Ich denke, es ist klein bis nicht existent. – Anders