Como impedir que o printf imprima códigos de escape no shell script?

1

Quando executo um script de shell simples com o seguinte código:

#!/bin/sh 
printf "\e[32m Hello World\n"

Eu obtenho

\ e [32m Hello World

como saída, em oposição a uma saída verde Hello World.

    
por robin smith 21.06.2011 / 19:34

1 resposta

5

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.

    
por 21.06.2011 / 19:37