Ich versuche, ein Array, das andere Arrays enthält, durchlaufen und diese Arrays bestehen aus Zeichenfolgen mit Leerzeichen. Das Problem ist, dass ich den Abstand in der Zeichenfolge scheinbar nicht beibehalten kann. Die Zeichenfolge mit Leerzeichen werden entweder in mehrere Elemente unterteilt, wenn ich IFS ändern auf \ n oder alle Elemente des Arrays werden als 1 Artikel zu sehen, wenn ich IFS unverändert lassen hier einige Beispielcode:Loop-Array von Arrays von Zeichenfolge mit Leerzeichen
#!/bin/sh
low1=("AA QQ" "BB LL")
low2=("CC" "DD")
low3=("EE" "FF")
high=(low1 low2 low3)
for high_item in ${high[@]}
do
eval arrayz=\${$high_item[@]}
#IFS=$'\n'
for item in $arrayz
do
echo $item
done
done
Ausgang:
AA QQ BB LL CC DD EE FF
Wie Sie sehen können, wurden die Elemente "AA QQ" und "BB LL" aufgeteilt.
Wenn ich die Zeile Kommentar-, die IFS
setzt auf \n
ich folgende:
AA QQ BB LL CC DD EE FF
Now "AA QQ" und "BB LL" ist verketteten!
Gibt es trotzdem ich diese Elemente bewahren können, so wie sie original sind ... Ich brauche die Ausgabe so aussehen:
AA QQ BB LL CC DD EE FF
Für 'low1' haben Sie jedes Element in einer separaten Zeile. Für 'low2' und' low3' erscheinen alle Elemente in einer einzigen Zeile.Ist das beabsichtigt? – chepner