• 25.04.2024, 01:46
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. 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.

Bash-script - Problem mit array

Dienstag, 8. Mai 2007, 13:04

Hi Leute!

Ich habe die Aufgabe bekommen mich mal ein bischen mit bash-scripten unter Solaris 10 zu beschäftigen. Jetzt wollte ich mal ein array anlegen in das Variablen die beim aufrufen des scriptes eingegeben werden müssen geschrieben werden. Das ganze Script sieht bisher so aus:

Quellcode

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

echo "Bitte geben Sie eine Zahl ein: "
read zahl1

echo "Bitte geben Sie eine zweite Zahl ein: "
read zahl2

zahlen=( "$zahl1" "$zahl2" )
echo ${zahlen[0]}
echo ${zahlen[1]}


Als error kriege ich aber die ganze Zeit den hier:

Quellcode

1
01_lotto: syntax error at line 12: `zahlen=' unexpected


Den error kriege ich aber auch, wenn im Script nur folgendes steht:

Quellcode

1
2
3
zahlen=( [0]="hallo" [1]="test" )
echo ${zahlen[0]}
echo ${zahlen[1]}


Jemand ne Idee?
Da steht nix :-P

Re: Bash-script - Problem mit array

Dienstag, 8. Mai 2007, 13:37

Unter Linux funktionieren bei mir mit der Bash die folgenden Schreibweisen wie gewünscht:

Quellcode

1
2
3
zahlen=($zahl1 $zahl2)
zahlen=( $zahl1 $zahl2 )
zahlen=( "$zahl1" "$zahl2" )

Es könnte auch an den Zeilen davor/danach liegen, aber die sehen auch einwandfrei aus.

Vielleicht ist die Bash-Version bei deinem Solaris irgendwie ziemlich alt oder wurde halt separat weiterentwickelt und kann damit so nicht um?

Folgendes habe ich auf einigen Websites zum Thema gefunden:

Zitat

Hoffentlich funktioniert das auch auf der solaris-bash ... sonst hol dir besser eine aktuelle von sunfreeware.com

Zitat

Leider läßt sich das Script nicht ohne weiteres auf der SUN benutzen, da zum Teil die Befehle
ein wenig anders sind und die Interpretationen der "for"-schleife sich nicht so verhalten wie
erwartet.


Vielleicht wäre es günstiger, eine andere Shell oder gleich Perl/Python zu verwenden?

Re: Bash-script - Problem mit array

Dienstag, 8. Mai 2007, 13:43

Hmm irgendwie seeeeehr komisch!
Versionsangaben:

GNU bash, version 3.00.16(1)-release (sparc-sun-solaris2.10)
Copyright (C) 2004 Free Software Foundation, Inc.


/edit: du sollst doch nicht editieren, wenn ich nen Beitrag schreib :P ;) ;)

Installieren kann (darf) ich leider nichts anderes... Aber ich werds mal mit ner anderen shell probieren.
Da steht nix :-P

Re: Bash-script - Problem mit array

Dienstag, 8. Mai 2007, 13:47

warum eigentlich so kompliziert? das geht an der eigentlichen idee doch mal völlig vorbei, wenn man eh alles in einzelnen variablen speichert kann man sich das array auch sparen

sollte das so nicht auch gehen?

Quellcode

1
2
3
read zahlen[0]
read zahlen[1]
echo ${zahlen[@]}


btw: so praktisch die bash auch sein mag und so sehr ich sie lieben gelernt hab, programmieren macht damit nur wenig spaß... ;)

Re: Bash-script - Problem mit array

Dienstag, 8. Mai 2007, 14:29

:-[ :-[ hab den Fehler gefunden... -> Man sollte das script auch richtig aufrufen ::)

gestern hat man mir gesagt ich muss scripte mit "sh dateiname" aufrufen. Nur dass man statt dem sh vllt. bash schreiben sollte sagt mir natürlich keiner und selbst denk ich natürlich auch ned dran :-/

@r1ppche3n: wenn das so funktioniert, dann mach ich des natürlich auch so - danke für den Hinweis
Da steht nix :-P

Re: Bash-script - Problem mit array

Dienstag, 8. Mai 2007, 14:49

also ich ruf scripte ja eher mit <pfad>/<dateiname> bzw ./<dateiname> auf
sonst könnt man sich das #!/bin/bash am anfang auch sparen... ;)

Re: Bash-script - Problem mit array

Dienstag, 8. Mai 2007, 14:50

Oha! Ich habe extra noch die Shebang-Zeile kritisch beäugt, die aber die Bash referenziert. Sofern diese Zeile vorhanden (und korrekt) ist, kannst du das Script direkt ausführen, sofern dein Benutzer das darf (ggf. z.B. mit `chmod u+x script.sh` Ausführungsrechte für dich oder mit `chmod +x script.sh` für alle setzen). Dann kannst du es mit `./script.sh` ausführen.

Wenn du allerdings erst den Interpreter aufrufst und ihm den Dateinamen des Scripts als Parameter übergibst, wird die Shebang-Line ignoriert (beginnt ja mit einem Kommentarzeichen). Wenn man dann natürlich `/bin/sh` verwendet und das selbst - oder nur ein Symlink auf - eine andere Shell als die Bash ist, kann es eben zu solchen Problemen kommen.

Re: Bash-script - Problem mit array

Dienstag, 8. Mai 2007, 15:23

*gg* man sieht ich bin ein noob auf dem Gebiet ;)

Danke nochmal für eure Hilfe! Jetzt funzt soweit alles. Kanns an den Schliff gehen :)
Da steht nix :-P