Esse script (no bash) aceita qualquer caractere, exceto
- ^ C (ASCII 03 ETX)
- ^ J (ASCII 0A LF)
- ^ M (ASCII 0D CR)
- ^ Z (ASCII 1A SUB)
- ^ \ (ASCII 1C FS)
incluindo todos os outros caracteres de controle:
#!/bin/bash
while IFS= read -srn1 a ;do
[[ "${a+x$a}" = "x" ]] && break
var=$var$(printf '%s' "$a")
printf '%s' "$a"
done
printf '\n%s\n' "$var"
Digite os espaços de retorno como CTRL - H .
Substituir:
printf '\n%s\n' "$var"
com:
printf '%s' "$var" | od -An -tx1
Para realmente "ver" os valores de bytes.