我运行这个脚本
script.sh 'abcdefghijk123456789!@#$%^&' 'aaaa4444ged###'
它应该能够生成一个包含类似
1 1 1 1 15 15 15 15 7 5 23 23 23
有 12 个索引 0 - 11,但我得到的是
1 1 1 1 1 5 1 5 1 5 1 5 7 5 2 3 2 3 2 3
有 20 个索引。我想用给定字符的基数填充一个数组。所以我有一个我们将在$startstring
ie 中使用的字符列表。
abcc5678%
我们可以说 ie 中的每个字符$startstring
都 = 对应于
$charset
ie 中的一个字符。abcd5678!%
. 此代码查找每个$startstring
char 等于$charset
的索引号。该信息是我试图在数组中捕获的信息。大多数情况下它都可以工作,除了一个错误,而不是整数 10 存储在 decoded[1] 中,发生的是数字 10 被拆分为 1 和 0,然后两者都放在单独的索引下。因此,我最终得到的不是“1 10 1”和 3 个索引,而是 4 个带有“1 1 0 1”的索引。我确定我只是以错误的方式处理我的变量,但我搜索和搜索,现在我的大脑要爆炸了,所以我来到这里寻求解脱。或者无论如何希望它。有人能告诉我在这个decoded[]
数组中插入数字的正确方法吗?
#!/bin/bash
#declare -i decoded
charset=$1
startstring=$2
start=$((${#charset}-1))
echo "Setting up CharMap to CharSet"
for i in $(eval echo {0..$start})
do
echo $i " = " ${charset:$i:1}
done
echo "Proving Chars Were Mapped Correctly."
start2=$((${#startstring}))
start3=$((${#charset}-1))
for i in $(eval echo {0..$start2})
do
for p in $(eval echo {0..$start3})
do
if [ "${startstring:$i:1}" == "${charset:$p:1}" ]
then
echo "found that" ${startstring:$i:1}"=" $p 'from the charmap.'
decoded+=$p #<--### I DONT THINK THIS IS WHAT I NEED ###
fi
done
done
##################Just trying to print my new array#########################
start4=$((${#decoded}-1))
echo 'Testing the array $decoded'
echo 'the var start4(length of $decoded) = '$start4
echo 'this number should equal ----------> '$start2
echo 'Printing out the $decoded array in a for loop'
for c in $(eval echo {0..$start4})
do
echo ${decoded[$c]} ###DOESNT WORK LIKE I THOUGHT# also tried echo ${decode:$c:1}
done