首页 > 解决方案 > 在bash的for循环中多次编码变量

问题描述

我想将 var 编码 40 次为 base64 并需要第 35 个生成值的值。但似乎我对所有 40 种编码 (37) 都得到了相同的结果。谁能让我走上正确的道路?到目前为止我尝试了一切..

#!/bin/bash

# Variable to encode
var="nef892na9s1p9asn2aJs71nIsm"
counter=0

for counter in {1..40}
do
   encode=$(echo $var | base64)
   ((counter++))

if [[ "$counter" == 35 ]]; then
    echo $encode | wc -c
fi
done

标签: bash

解决方案


您正在使用var每个循环。

encode=$(echo $var | base64)

var总是一样的,你永远不会改变它。encode例如,使用。

encode=$var
for ....
      encode=$(echo "$encode" | base64)

使用 shellcheck.net 检查您的脚本。


推荐阅读