Из-за динамического характера оболочки вы не можете сделать это без запуска скрипта.
Например:
TASK="cc foo.c"
time $TASK
Это будет действительно трудно определить без запуска этого cc
вызывался даже в таком тривиальном примере, как указано выше.
Во время выполнения вы можете проверить отладочный вывод sh -x myscript
, как указано thiton (+1) и ks1322 (+1).Вы также можете использовать инструмент strace
, чтобы перехватывать все системные вызовы exec()
.