Código de letras como números

0

O script abaixo está pedindo ao usuário para inserir algo e depois imprimir a entrada como uma saída:

#!/bin/bash
 printf "\e[31mType/Enter something: $pdir\e[m  ";
 read -e userInput
 if [[ -n "$userInput" ]]
 then
     pdir=$userInput 
 fi
 printf "\e[96mYour code is: $pdir\e[m\n";

Minhas perguntas são:

  1. Como o código anterior pode ler somente letras em "userInput"?
  2. Como posso converter minha entrada "userInput" como um número de saída, por exemplo, se eu digitar "John", como posso obter um número de saída.
por choroba 07.01.2016 / 18:39

1 resposta

0

Aqui estão duas maneiras que vêm à mente

converta cada caractere em seu valor ASCII

$ echo John | perl -lne 'printf "%03d", ord for split ""'
074111104110

Ou, se você não precisa estritamente de números , apenas um código, base64

$ echo John | base64
Sm9obgo=

Para decodificar:

$ echo 074111104110 | perl -ne 'print chr for /(\d{3})/g'
John

$ echo Sm9obgo= | base64 --decode
John
    
por 07.01.2016 / 19:09

Tags