2013-12-22 2 views
2

Предположим, у меня есть функция func, которая получает два аргумента «a» и «b» и возвращает что-то. По какой-то причине я не могу справиться с тем, что я получаю от функции.Получение возвращаемого значения функции

Это то, что я пробовал:

value=$(func $a $b) 
echo $value 

ответ

3

Поскольку вы не показать свое определение функции, это только предположение, но я абсолютно уверен, что это хорошо.

Вы должны понимать, что функция в скорлупе вписывается в язык, как будто это была команда, то есть отдельная программа, а return ключевое слово аналогично exit. Вы можете возвращать только маленькие целые числа, а вызывающий их видит в $?, как и значение выхода любой другой команды.

функции также может выводить результат в stdout с помощью echo (или любую другую команду, которая выводит на стандартный вывод), а затем результат может быть caputred с $(func args ...)

Таким образом, вы, вероятно, просто нужно изменить return к echo в ваша функция.

+0

Моя функция возвращается с использованием оператора «return», так как я хочу закончить функцию после того, как она вернет некоторое значение. –

+0

Итак, замените его на 'echo', за которым следует' return 0', если вы хотите, чтобы функция считалась успешной, или 'return 1', если вы хотите, чтобы она потерпела неудачу. Так же, как писать независимую программу - вы делаете свой вывод, а затем выходите. Кроме того, что «выход» из функции оболочки записывается «return». –

Смежные вопросы