$(...)
называется подстановкой команды.
Проще говоря, function_name
напечатает вывод, готово.
$(function_name)
вывод из функции станет частью (обычно в качестве аргумента) в качестве новой команды, которую нужно выполнить.
echo "ls" #<--- assume this is the function
Откройте терминал и попробуйте, вы поймете это лучше:
echo "ls"
и
$(echo "ls")