#bash
Вопрос:
Я хочу кодировать 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
Комментарии:
1. Удалять
((counter ))
.40 times to base64 and need the value of the 35th
Тогда почему 40? Просто сделай это35
несколько раз.all 40 encodings (37)
итак, 40, 37 или 35?I get the same result
Как вы проверяете результат, если он тот же самый? Пожалуйста, опубликуйте это.2. @raidn1337 : Вы всегда кодируете одну и ту же переменную (
var
). Как вы думаете, почему вы получили бы другие результаты? На самом деле, мне было бы жутко, если бы вы получали разные результаты при каждой попытке.
Ответ №1:
Вы используете var
каждый цикл.
encode=$(echo $var | base64)
var
всегда одно и то же, вы никогда его не меняете. Используйте encode
, например.
encode=$var
for ....
encode=$(echo "$encode" | base64)
Проверьте свои сценарии с помощью shellcheck.net .