Mam jedno źródło bash run.shw następujący sposób,
#!/bin/bash
if [ $# -ne 1 ]; then
exit
fi
...
kiedy wykonuję to na dwa sposoby, są różne zachowania. Pierwszy sposób to
source run.sh
Zamknie terminal po wykonaniu. Drugi sposób to
./run.sh
to po prostu zakończy działanie skryptu i pozostanie na terminalu. Pytam, czy istnieje polecenie wyjścia ze skryptów bash dla obu source run.shi ./run.shwykonania. Próbowałem returnteż, co nie działa dobrze w trakcie ./run.shwykonywania.
Mówiąc bardziej ogólnie, interesuje mnie, dlaczego tak się dzieje i jaka jest różnica między użyciem „źródła” i „.” do wykonania skryptu?
$- = *i*?