Natuurlijk. Als we van binnen naar buiten werken, zie je ${BASH_SOURCE[0]} staan. Dat is eigenlijk hetzelfde als $0. Het geeft het pad en de bestandsnaam van het huidige draaiende script.
De dirname ervoor geeft alleen het pad. De '--' na dirname zegt dat er hierna geen opties meer volgen. Als het script gestart was met ./, dan krijg je als pad ook . terug.
Daarom proberen we een cd uit (ook hier dient de -- om te zeggen dat er geen opties meer volgen) en als die lukt, gebruiken we pwd om de juiste naam van de directory te halen. In plaats van . krijg je nu /home/gebruiker/. Als de cd niet lukt, is de directorynaam niet geldig en vermits we die van het systeem haalden zou dat eigenlijk niet mogen voorkomen, maar dan zal het resultaat leeg zijn. Omdat die cd in een subshell gebeurt, verandert er dus niets in het script zelf en blijft die in dezelfde directory staan als voorheen .