У меня есть сценарий Bourne Shell, который имеет несколько функций в нем, и позволяет назвать следующим образом:получить список имен функций в сценарии оболочки
my.sh <func_name> <param1> <param2>
Внутри FUNC_NAME() будет вызывать с param1 и param2.
Я хочу создать функцию «помощи», которая будет просто перечислять все доступные функции, даже без параметров.
Вопрос: как мне получить список всех имен функций в скрипте изнутри скрипта?
Хотелось бы избежать анализа и поиска шаблонов функций. Слишком легко ошибаться.
Спасибо, Alex
обновление: код. Требуется, чтобы моя функция help() была похожа на main() - функция, добавленная в код, автоматически добавляется в справку.
#!/bin/sh
# must work with "set -e"
foo()
{
echo foo: -$1-$2-$3-
return 0
}
# only runs if there are parameters
# exits
main()
{
local cmd="$1"
shift
local rc=0
$cmd "[email protected]" || rc=$?
exit $rc
}
if [[ "$*" ]]
then
main "[email protected]"
die "how did we get here?"
fi
"Bourne оболочки"? Я не знаю о ** любом ** дистрибутиве Linux, который отправляет Bourne из коробки или когда-либо; '/ bin/sh' почти универсально POSIX sh (более десятилетний стандарт с ненулевым набором несовместимостей, например, Bourne рассматривает'^'как символ канала, POSIX sh не делает, Bourne использует' $ [] ' для математики POSIX sh использует '$ (()) и т. д.). –
@CharlesDuffy У вас есть источник для этого? –
@OleTange, какая часть? (Я, конечно, полагался на «на Linux», чтобы исключить такие случаи, как SunOS/более старая Solaris, где POSIX sh находится в другом месте, но (1), на которые ссылались в моем комментарии, и (2) вопрос так отмеченном). –