私はbashでスクリプトを書く方法を学び、いくつかの練習問題を解決しようとしています。運動はこんな感じです。
「basenew」という変数に「valuebase」という変数の内容が含まれている場合。 "basenew"には113,469文字以上を含める必要があります。両方の条件が満たされると、スクリプトは "basenew"変数の最後の20文字を印刷する必要があります。
私のコードは
#!/bin/bash
basenew="8dm7KsjU28B7v621Jls"
valuebase="ERmFRMVZ0U2paTlJYTkxDZz09Cg"
for i in {1..40}
do
basenew=$(echo $basenew | base64)
if [[ $basenew =~ $valuebase && ${#basenew} -ge 113469 ]] ; then
echo $i
echo $basenew | wc -c
StrLen=`echo ${basenew} | wc -c`
From=`expr $StrLen - 20`
echo $basenew | cut -c ${From}-${StrLen}
else
echo "error"
fi
done
しかし、繰り返し28で印刷され、最後の20回の繰り返しなので詰まっていますが、正解ではありません。
tail -c 20を使用して最後の20文字を印刷する提案はありますか?
ありがとう