如何展开包含内部函数的 bash 函数?

如何展开包含内部函数的 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
}

相关内容