Shell-Skript-arrays
Ich würde gerne von array-Elementen mit Schleife:
for i in 0 1 2 3 4 5 6 7 8 9
do
array[$i] = 'sg'
done
echo $array[0]
echo $array[1]
So funktioniert es nicht.
Wie..?
- Kennen Sie den seq-Befehl? Sie ersetzen könnten Ihre zahlen mit $(seq 0 9)
- oder einfach nur
{0..9}
. - Sie müssen vorsichtig sein, da einige Muscheln haben keine arrays. Wenn Sie möchten, beschreibbar portable Kh, Sie können keine arrays verwenden überhaupt.
- Definitiv ein bashism, ich habe Feste die tags.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen Sie die Leerzeichen:
Außerdem sollten Sie den Zugriff auf die Elemente wie*:
Siehe z.B. http://tldp.org/LDP/abs/html/arrays.html.
* Dank @Mat für die Erinnerung an diese!
Sollte es funktionieren, wenn Sie erklärt hatte, Ihre Variablen als array, und drucken Sie es richtig:
Ihn in Aktion zu sehen hier.
HTH
es ein problem mit Ihrem echo-Anweisung: geben
${array[0]}
und${array[1]}
Ausgabe:
Google
Yahoo
Bing
Blekko
Rediff
Mein nehmen auf dieser Schleife:
Oder noch einfacher:
Sehen http://ideone.com/DsQOZ für einen Beweis. Beachten Sie auch, bash-4+ readarray:
In der Tat, readarray ist der vielseitigste, z.B. die top 10 PIDs der Prozesse mit bash im Namen in ein array (die Rückgabe eines array-Größe<10 wenn es keine 10 solcher Prozesse):