Проблема в том, что вы не можете изменить рабочий каталог родительского процесса. 
В связи с вашей проблемой процедура выглядит следующим образом:
Текущий рабочий каталог вашей интерактивной оболочки - $PWD . Затем вы запускаете gotomusic и ваша интерактивная оболочка (я назову ее parentbash) запускает новый экземпляр bash (я называю это childbash) как новый процесс. childbash наследует несколько атрибутов parentbash . Среди прочего он наследует свой рабочий каталог от parentbash . 
Поскольку вы инструктируете childbash читать команды из вашего скрипта, он меняет свой рабочий каталог на /media/sda8/Music и завершает работу.
В этот момент parentbash снова становится активным с тем же состоянием, что и до выполнения childbash .
Для того, чтобы parentbash свою встроенную команду cd вы должны создать свой скрипт. Это легко сделать
source gotomusic
Но остается вопрос, подходит ли этот подход для быстрой смены каталога.
Существует несколько реализаций системных bashmarks каталогов-закладок, но я думаю, что лучшим решением было бы то, что вы можете легко выбрать из списка наиболее часто используемых каталогов. Я не знаю, существует ли что-то подобное для bash но если вы хотите использовать zsh вы можете получить его в [ 1 ].