Verwirrender Code, bitte um Hilfe

Verwirrender Code, bitte um Hilfe

Ich brauche Hilfe. Ich programmiere gerade ein Bash-Skript, für das ich 26 Variablensätze habe. Ich stecke bei diesem Teil fest, bei dem ich Hilfe brauche. Mir ist aufgefallen, dass man bei der Installation von Ubuntu auf dieser Website nachsehen soll, wenn man Hilfe braucht, und jetzt brauche ich sie. Im Grunde habe ich Variablen mit der Bezeichnung l#a, wobei „number“ eine beliebige Zahl zwischen 1 und 26 ist. Ich möchte Folgendes tun: Es durchläuft einen Bereich, genau wie man von 1 bis 10 zählt, es gibt nur 9 Ziffern. Aber in diesem Fall möchte ich, dass es so zählt, als ob es 64 wären. Sagen wir es so.

Es beginnt bei „l1a“ bei 0 und fügt immer 1 hinzu, bis es 64 erreicht. Wenn es 64 erreicht, wartet es, bis es bis 65 ticken kann, aber anstatt so weit zu gehen, prüft es den Wert des Nachfolgers (in diesem Fall „l2a“), und wenn dieser nicht 64 ist, tickt es um 1 und setzt l1a auf 0. Wenn ja, prüft es den nächsten, um zu sehen, ob er 64 ist oder nicht, wenn nicht, tickt es um 1 und setzt alles davor auf 0, wenn ja, prüft es den nächsten und so weiter. Wenn es einen findet, der nicht 64 ist, tickt es ihn und der Wert jedes Vorgängers wird wieder auf 0 geändert. Wenn es aber bis l26a geht und dieser sowie alle anderen Ziffern 64 ist, beendet es den Code.

DER CODE:

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 

Antwort1

Autsch! Das ist perfekt für Arrays:

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
        # ...

verwandte Informationen