Как мне развернуть функцию bash, в которой есть внутренние функции?
Предположим, я источник функции myfunction
определяется
myfunction(){
myinnerfunction
}
где myinnerfunction
определяется как
myinnerfunction(){
echo word
}
Я хотел бы найти эквивалент declare -f myfunction
который отображает содержание внутренней функции myinnerfunction
т.е.
myfunction ()
{
echo word
}
вместо
myfunction ()
{
myinnerfunction
}
Теперь, что если у меня есть внутренние псевдонимы вместо внутренних функций?
1 ответ
Вот краткий скрипт, который ищет внутренние функции и определяет их одновременно (только 1 уровень глубины)
function declare-recursively () {
declare -f $@
declare -f | grep ' () {' | sed 's/ () {//' | while read i
do
declare -f $@ | grep -Po "[\t, ]$i " | while read j
do
declare -f $j
done
done
}