Dzieję się tak dlatego, że środowisko powłoki używanej do wykonania skryptu różni się od środowiska “interaktywnego”. Nie wszystkie zmienne są obecne - bo po co, skoro nie da się ich wykorzystać? Dużo ograniczeń wynika też z problemu “czy chcesz by każdy program wiedział o tobie wszystko”. Szczegóły znajdziesz w podręczniku powłoki.
Jeżeli chcesz dokładnie porównać, które zmienne są/nie są inicjowane wykonaj polecenie:
set >plik
oraz skrypt zawierający podobną konstrukcję. Wyników jest dużo, więc proponuję nie próbować nawet bez zrzutu do pliku
Rejestrując się na niniejszym forum zobowiązałeś się przestrzegać jego regulaminu. Niestety, w tym momencie łamiesz go nie tytułując poprawnie tematu. Proszę zapoznać się w pierwszej kolejności z regulaminem forum, a następnie z tym tematem. Po zapoznaniu się proszę poprawić tytuł tematu, używając przycisku