#bash #function #testing #bats-core
Вопрос:
Я пишу сценарий оболочки из книги, и есть пример, в котором я создаю функцию и вызываю эту функцию позже $(function_name)
.
Но, насколько я знаю, я могу вызвать функцию, просто написав ее имя. Итак, в чем разница между вызовом функции с ее именем и с $(function_name)
?
Комментарии:
1.
$( )
захватывает выходные данные команды (может быть функцией, обычной командой, составной командой, такой как конвейер или что-то еще) и использует ее как часть другой команды. См. Этот вопрос о Unix и Linux .
Ответ №1:
$(...)
называется подстановкой команд.
Проще говоря, function_name
распечатает вывод, готово.
$(function_name)
вывод функции станет частью (обычно в качестве аргумента) в качестве новой команды, которая будет выполнена.
echo "ls" #<--- assume this is the function
Откройте терминал и попробуйте, вы поймете это лучше:
echo "ls"
и
$(echo "ls")