Как мне развернуть функцию 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
}
Другие вопросы по тегам