次のスクリプトは、ユーザーに入力を要求した後、入力を出力として印刷します。
#!/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
2つの方法を考えてみました。
各文字を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