下面的脚本要求用户输入一些内容,然后将输入内容打印为输出:
#!/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";
我的问题是:
- 前面的代码如何只读取“userInput”中的字母?
- 如何将我的条目“userInput”转换为输出数字,例如,如果我输入“John”,如何获得输出数字。
答案1
我想到了两种方法
将每个字符转换为其 ASCII 值
$ echo John | perl -lne 'printf "%03d", ord for split ""'
074111104110
或者,如果您不严格需要数字,只是一个代码,base64
$ echo John | base64
Sm9obgo=
解码:
$ echo 074111104110 | perl -ne 'print chr for /(\d{3})/g'
John
$ echo Sm9obgo= | base64 --decode
John