Confusing Code, solicite ajuda [closed]

0

Eu preciso de ajuda. Eu estou recentemente codificando um script bash, que eu tenho 26 conjuntos de variáveis. Estou preso nesta parte que eu preciso de ajuda. Eu notei quando você instala o Ubuntu para verificar este site, se você precisar de ajuda, e agora eu faço. Basicamente, eu tenho variáveis rotuladas l # a, com o número sendo qualquer número 1-26. O que eu quero fazer é isto: Ele faz um loop como se você contasse de 1 a 10, há apenas 9 dígitos. Mas, nisto, quero contar como se houvesse 64. Vamos colocar assim.

A partir de "l1a", começa em 0 e continua adicionando 1 até chegar a 64, quando chega a 64, aguarda até o momento em que pode atingir 65, mas em vez de ir tão longe, verifica o valor do sucessor (neste caso, "l2a"), e se não for 64, ele marca 1, e define l1a para 0, se for, verifica o próximo para ver se é 64 ou não, se não , ele compara isso por 1 e define tudo antes disso para 0, se for, verifica o próximo e assim por diante. Quando ele encontra um que não é 64, ele marca e o valor de cada predecessor é alterado de volta para 0. Mas, se for até o l26a, e for 64, assim como todos os outros dígitos, ele terminará código.

O CÓDIGO:

l1a=0
l2a=0
l3a=0
l4a=0
l5a=0
l6a=0
l7a=0
l8a=0
l9a=0
l10a=0
l11a=0
l12a=0
l13a=0
l14a=0
l15a=0
l16a=0
l17a=0
l18a=0
l19a=0
l20a=0
l21a=0
l22a=0
l23a=0
l24a=0
l25a=0
l26a=0
l1b="0"
l2b="0"
l3b="0"
l4b="0"
l5b="0"
l6b="0"
l7b="0"
l8b="0"
l9b="0"
l10b="0"
l11b="0"
l12b="0"
l13b="0"
l14b="0"
l15b="0"
l16b="0"
l17b="0"
l18b="0"
l19b="0"
l20b="0"
l21b="0"
l22b="0"
l23b="0"
l24b="0"
l25b="0"
l26b="0"
n=1
n2=0
p=1
let n2 = n + 1
l=0
u10="_"
u11="a"
u12="b"
u13="c"
u14="d"
u15="e"
u16="f"
u17="g"
u18="h"
u19="i"
u20="j"
u21="k"
u22="l"
u23="m"
u24="n"
u25="o"
u26="p"
u27="q"
u28="r"
u29="s"
u30="t"
u31="u"
u32="v"
u33="w"
u34="x"
u35="y"
u36="z"
u37="A"
u38="B"
u39="C"
u40="D"
u41="E"
u42="F"
u43="G"
u44="H"
u45="G"
u46="H"
u47="I"
u48="J"
u49="K"
u50="L"
u51="M"
u52="N"
u53="O"
u54="P"
u55="Q"
u56="R"
u57="S"
u58="T"
u59="U"
u60="V"
u61="W"
u62="X"
u63="Y"
u64="Z"
while true; do
    cd /home/eddy/Pictures/MCSkins/Auto
let n = 1
if [ "$l" -lt "10" ]; then
    let l"$n"b = l"$n"a
else
    let l"$n"b = u"$l"
fi
if [ "$l" -le "64" ]; then
    let l = l + 1
else
    if [ "$l+$p" -le "64" ]; then
        let 
    
por user245115 08.05.2014 / 00:34

1 resposta

2

Ouch! Isso é perfeito para matrizes:

declare -a la lb
for n in {1..26}; do
    la[$n]=0
    lb[$n]="0"
done

declare -a u=(
    [10]="_" [11]="a" [12]="b" [13]="c" [14]="d" [15]="e" [16]="f" [17]="g"
    [18]="h" [19]="i" [20]="j" [21]="k" [22]="l" [23]="m" [24]="n" [25]="o"
    [26]="p" [27]="q" [28]="r" [29]="s" [30]="t" [31]="u" [32]="v" [33]="w"
    [34]="x" [35]="y" [36]="z" [37]="A" [38]="B" [39]="C" [40]="D" [41]="E"
    [42]="F" [43]="G" [44]="H" [45]="G" [46]="H" [47]="I" [48]="J" [49]="K"
    [50]="L" [51]="M" [52]="N" [53]="O" [54]="P" [55]="Q" [56]="R" [57]="S"
    [58]="T" [59]="U" [60]="V" [61]="W" [62]="X" [63]="Y" [64]="Z"
)

declare -i n
declare -i n2
declare -i l
declare -i p=1

cd /home/eddy/Pictures/MCSkins/Auto
while true; do
n=1
if (( $l < 10 )); then
    lb[$n]=${la[$n]}
else
    lb[$n]=${u[$l]}
fi
if (( $l <= 64 )); then
    ((l++))
else
    if (( $l + $p <= 64 )); then
        # ...
    
por glenn jackman 08.05.2014 / 02:02