Dlaczego po wywołaniu w nowej powłoce skryptu zmienna lokalna nadal jest aktualna?

0

Witam, zastanawiam się dlaczego mając skrypt script.sh o treści:
echo "a: $a"
echo "b: $b"
a=10 b=20

$ a=2 b=4
$ export a
$ bash script.sh // po wywołaniu tej komendy a=2, a b=4, skoro tylko "a" jest zmienną globalną, a "b" lokalną? Przeszliśmy przecież już do nowej powłoki dzięki poleceniu bash, zatem b nie powinno być chyba pamiętane?
$ . script.sh
$ echo $a $b

0

U mnie się to tak nie zachowuje - zmienna b nie jest widziana przy wywołaniu bash script.sh.
Może wcześniej miałeś export b zrobione?
Albo masz jakąś exportowaną zmienną b w środowisku?
Albo korzystasz z dziwnego shella? ;)
Albo miałeś w środowisku zrobione set -a (co powoduje eksportowanie wszystkich zmiennych) - np. w .bashrc?

1 użytkowników online, w tym zalogowanych: 0, gości: 1