3 SC2177
Joachim Ansorg edited this page 2021-11-12 19:44:30 +01:00

time is undefined for compound commands, use time sh -c instead.

Problematic code:

time for i in *.bmp; do convert "$i" "$i.png"; done

Correct code:

time sh -c 'for i in *.bmp; do convert "$i" "$i.png"; done'

Rationale:

time is only defined for Simple Commands by POSIX. Timing loops, command groups and similar is not.

Exceptions:

None. If you use a shell that supports this (e.g. bash, ksh), specify this shell in the shebang.