Não é exatamente o perfil, mas você pode rastrear seu script enquanto ele é executado. Coloque set -xvantes da seção que deseja rastrear e set +xvdepois da seção. set -xativa o xtrace, que mostrará todas as linhas que são executadas. set -vativa o modo detalhado, que também mostrará linhas que podem ter efeito, mas não são executadas, como atribuição de variável.
Você também pode registrar o carimbo de data e hora. Você precisa de um emulador de terminal que possa registrar o carimbo de data / hora em todas as linhas; o único que eu conheço é o RealTerm , que é um programa do Windows, mas funcionará com o Wine. Você também pode usar grabserial, embora eu não tenha tentado, exceto com portas seriais reais. Você pode descobrir qual dispositivo serial seu shell está usando executando ps -p $$(caso contrário, use manpara descobrir como incluir a coluna TTY na sua pssaída).
Além disso, consulte Ferramentas de perfil de desempenho para scripts de shell no Stack Overflow.