cat *.sh > all.sh iria concatenar todos os arquivos para um. Isso é um pouco sujo, pois *.sh também corresponderá a all.sh se ele já existir, mas o redirecionamento será limpo all.sh antes que cat seja executado aqui.
Você também pode escrever um script para obter todos os outros (chame-o de includeall.sh ):
for f in *.sh; do
if [ "$f" != "includeall.sh" ]; then
. "$f"
fi
done
Em seguida, digite isso com . includeall.sh . O if está lá para evitar a inclusão de includeall em si. Embora não seja uma má idéia colocar os scripts a.sh .. z.sh em um diretório separado. Isso tornaria a estrutura de diretórios mais limpa e dificultaria a origem acidental de qualquer script errado. for f in dir/*.sh; do . "$f"; done nesse caso.