Existe uma ferramenta printf
que simula a função C; normalmente é em /usr/bin/printf
, mas muitos shells implementam built-ins para ele também. Você pode usar %02x
para obter a representação hexagonal de um caractere, mas é necessário passar uma string que inclua o caractere entre aspas simples ( Editar : citação no início é suficiente):
printf "%%%02x\n" "'-" # Outputs %2d
Você pode fazer uma função shell por conveniência:
function hex() {
printf "%%%02x\n" "'$1"
}
hex - # Outputs %2d
hex _ # Outputs %5f
hex . # Outputs %2e