bash 2 if 조건에서 스크립트를 작성하고 for 루프로 인쇄

bash 2 if 조건에서 스크립트를 작성하고 for 루프로 인쇄

저는 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자를 인쇄하라는 제안이 있습니까?

감사해요

관련 정보