O ile mi wiadomo, istnieją dwa sposoby tworzenia zmiennych lokalnych w funkcji bash: tworzenie podpowłoki lub deklarowanie każdej zmiennej jako lokalnej.Zmienne lokalne w bash: local vs subshell
Na przykład:
# using local
function foo
{
local count
for count in $(seq 10)
do
echo $count
done
}
lub
# using subshell
function foo
{
(
for count in $(seq 10)
do
echo $count
done
)
}
Obvisously wersja używania powłoki w tle jest prostsze napisać, ponieważ nie trzeba się martwić o deklarowania wszystkich zmiennych lokalnych (nie wspominając (środowisko) utworzone/wyeksportowane przez narzędzia takie jak getopts). Ale mogę sobie wyobrazić, że tworzenie podpowłoki ma narzut.
Jakie jest lepsze podejście? Jakie są zalety/wady?
, dobrze uruchomić polecenie 'oddać porównywalnych towarów ponad 1000 testów i znaleźć narzut, myślę, że jest mały, by nie istnieć. – Anders