bash 中的脚本两个 if 条件并在 for 循环中打印

bash 中的脚本两个 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 个字符?

谢谢

相关内容