Como posso desdobrar uma função bash com funções internas?

0

Suponha que eu crie a função myfunction definida por

myfunction(){
    myinnerfunction 
}

em que myinnerfunction é definido como

myinnerfunction(){
    echo word
}

Gostaria de encontrar um equivalente de declare -f myfunction que exiba o conteúdo da função interna myinnerfunction , i. e.

myfunction ()
{
    echo word
}

em vez de

myfunction ()
{
    myinnerfunction
}

Agora, e se eu tiver aliases internos em vez de funções internas?

    
por user123456 15.09.2016 / 23:42

1 resposta

0

Aqui está um pequeno script que procura por funções internas e as define ao mesmo tempo (apenas 1 nível de profundidade)

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
}
    
por user123456 19.09.2016 / 14:40