Sie sind nicht angemeldet.

[gelöst] shell scripting

Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »Jelcin« ist der Autor dieses Themas

Beiträge: 14

Registrierungsdatum: 10.11.2008

Derivat: Ubuntu

Architektur: 32-Bit PC

  • Nachricht senden

1

06.06.2010, 13:00

shell scripting

Hallo Ubuntu Community,
habe ein Problem mit arrays.
Beim ersten Code lese ich mit Hilfe von echo aus einem string Daten in ein Array. Das Array kann dann auf einmal ausgegeben werden. Nun möchte ich aber das z.B. eine Berechnung in einer Schleife in ein Array eingelesen wird und ich auch hier die Ergebnisse auf einmal ausgeben kann.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash

declare -a bin
declare -a array

string="haus boot auto depp idiot servus nazdar novo"

array=( `echo "$string"` )

echo ${array[@]} ----> gibt das Array (string) auf einmal aus


exit 0


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash

z=99
declare -a array

for ((i=1; i<=10; i++)); do

ergb=`expr $z + 100`
z=$ergb

array=( ${array[$i]} "$ergb" )

done
for i in 0 1 2 3 4 5 6 7 8 9; do

echo ${array[@]} --> gibt nur die eine Zahl aus anstatt Alle auf einmal.

done

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jelcin« (10.06.2010, 11:13)


2

06.06.2010, 17:13

Wenn du die Variablen 0..9 abfragen willst, solltest du zuerst auch diese füllen (und nicht 1..10):

Quellcode

1
for ((i=0; i<10; i++)); do z=`expr $z + 100`; array[$i]=$z ;done

Die Abfrage mit @ war wahrscheinlich nicht so gemeint...

Quellcode

1
for i in 0 1 2 3 4 5 6 7 8 9; do echo ${array[$i]}; done

Kannst die ganze Reihe aber natürlich auch 10x ausgeben lassen:

Quellcode

1
for i in 0 1 2 3 4 5 6 7 8 9; do echo ${array[@]}; done


BTW: Könntest du bitte einige deiner anderen Themen auf gelöst setzen, wenn es dazu keine Fragen mehr gibt, danke!
http://www.ubuntu-forum.de/artikel/49974…ckage-libs.html
http://www.ubuntu-forum.de/artikel/50296/dpkg-l.html
http://www.ubuntu-forum.de/artikel/50522/regex.html
http://www.ubuntu-forum.de/artikel/50715…r-schleife.html
Beim Erstellen dieser Nachricht kamen keine Tiere zu Schaden.
me is all sausage
but don't call me Ferdl