このスクリプトを次のように実行します
script.sh 'abcdefghijk123456789!@#$%^&' 'aaaa4444ged###'
次のようなものを含む配列を生成できるはずです
1 1 1 1 15 15 15 15 7 5 23 23 23
0〜11の12個のインデックスがありますが、私が得るのは
1 1 1 1 1 5 1 5 1 5 1 5 7 5 2 3 2 3 2 3
20 インデックス付き。特定の文字のベース番号を配列に入力したいと考えています。$startstring
だから私は私たちがie
で使用する文字のリストを持っています. 内のすべての文字は、 ie内の 1 つの文字に対して =
abcc5678%
であると言えます。. このコードは、各文字が何に等しいかを見つけます$startstring
$charset
abcd5678!%
$startstring
$charset
のインデックス番号。その情報は、私が配列でキャプチャしようとしているものです。数字の 10 が decoded[1] に格納されるのではなく、数字の 10 が 1 と 0 に分割され、両方が別々のインデックスの下に置かれるというバグを除いて、ほとんどの場合は機能します。したがって、「1 10 1」と 3 つのインデックスの代わりに、「1 1 0 1」の 4 つのインデックスになります。変数を間違った方法で処理しているだけだと確信していますが、検索して検索したところ、脳が爆発するので、安心のためにここに来ました。またはとにかくそれを願っています。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