printf
não entende \e
; você precisa usar 3
. Observe que printf
também é bash
builtin; esse tem extensões GNU incluindo \e
, mas a menos que você solicite especificamente seu script seja executado por /bin/bash
você normalmente obterá o POSIX.