Imprime o código fonte do script bash com seus includes

0

Existe uma maneira de visualizar / mostrar / imprimir o código-fonte do script bash com seus includes (também conhecidos como "fontes")?

Por exemplo:

arquivo sub.sh

 function showMe(){
     echo "INCLUDE"
    }

arquivo main.sh

#!/bin/bash    

source sub.sh

showMe    
echo "OK"

A "impressão" de main.sh mostrará:

#!/bin/bash    

showMe(){
 echo "INCLUDE"
}

showMe    
echo "OK"
    
por xlive 21.07.2015 / 15:48

3 respostas

0

Você pode tentar seguir awk :

awk '/^source/ { while (getline l <$2 > 0) print l; close($2); next; } { print; }' main.sh

, então cada linha que começa com source fname deve ser substituída pelo conteúdo do arquivo, se existir.

    
por 21.07.2015 / 16:07
1
perl -p0e 'while(s/source\s+(\S+)/'cat $1'/e){}' foo.sh
    
por 21.07.2015 / 16:06
1

Se você não se importar em executar o script também, aqui está uma maneira simples de exibir o código-fonte e seus includes:

bash -v foo.sh
    
por 21.07.2015 / 16:21

Tags