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.
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"
perl -p0e 'while(s/source\s+(\S+)/'cat $1'/e){}' foo.sh
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
Tags bash