Infelizmente, esse script tem alguns problemas de cotação. Isso funcionará se você adicionar essa função ao código:
date ()
{
command date "$*"
}
Na verdade, você não precisa alterar a fonte. Faça isso: defina a função "data" e exporte-a:
$ date() { command date "$*"; }
$ export -f date
$ annotate-output "+foo %T" bash -c "echo stdout; echo stderr >&2"
foo 10:38:30 I: Started bash -c echo stdout; echo stderr >&2
foo 10:38:30 E: stderr
foo 10:38:30 O: stdout
foo 10:38:30 I: Finished with exitcode 0
Pode haver problemas se o item que você está anotando também chamar date
.
Se você quiser consertar a saída de anotações no seu sistema, aplique este diff
$ diff /usr/bin/annotate-output bin/annotate-output
28c28
< echo "'date ${FMT}' $1: $line"
---
> printf "%s %s: %s\n" "$(date "$FMT")" "$1" "$line"
78c78
< echo "'date ${FMT}' I: Started $@"
---
> addtime I <<< "Started $*"
83c83
< echo "'date ${FMT}' I: Finished with exitcode $EXIT"
---
> addtime I <<< "Finished with exitcode $EXIT"