$'…'
é um recurso ksh93 que também está presente em zsh e bash e em algumas compilações do BusyBox sh (cinza de BusyBox construída com ENABLE_ASH_BASH_COMPAT
). Não está presente no sh simples. Os shells comuns que não o possuem incluem o traço (que é /bin/sh
no Ubuntu, entre outros) e algumas compilações do BusyBox.
Uma maneira portátil de obter backslash-letter e backslash-octal analisados como caracteres de controle é usar printf
. Está presente em todos os sistemas compatíveis com POSIX.
esc=$(printf '3')
col_green="${esc}[32;01m"
Observe que \e
não é portátil. É suportado por muitas implementações de printf
, mas não pelo de traço. Use o código octal em vez disso.