Ответ на заголовок вопроса (не в теле, как другие ответы):
Вернуть код выхода без закрытия оболочки
(exit 33)
То, что устанавливает код выхода без выхода из оболочки (ни из сценария с источником).
Для более сложного вопроса о выходе (с определенным кодом выхода), если он выполнен или получен:
#!/bin/bash
[ "$BASH_SOURCE" == "$0" ] &&
echo "This file is meant to be sourced, not executed" &&
exit 30
return 88
При выполнении будет установлен код выхода 30 (с сообщением об ошибке).
И код выхода 88, если получены.
Завершит оба выполнения или поиска без влияния на вызывающую оболочку.