Schönen Abend =),
in Chemie (ja, ich bin Schüler) ist mir die Idee gekommen, ein Script zu schreiben, das als Input verschiedene Nichtmetalle bekommt und dann die LEWIS-Formel ausrechnet.
Mal wieder eine schöne Aufgabe zum Nachdenken.
Bis jetzt sieht das Script so aus(gekürzte Version, die nur bestimmte Fälle berechnen kann):
Man muss als Atomzahl 3 eingeben und das erste eingegebene Atom muss das sein, was in der LEWIS-Formel in der Mitte steht.
Wenn man die Bash Datei ausführt werden 6 Fehler ausgegeben:
Mein Problem:
Ich verstehe die Fehlermeldungen nicht
.
1. '==' ist doch ein gültiger Operator.
2. Soweit ich weiss, ist '+' ein Rechenzeichen
3. Wieso wird in der Schleife für 'i' '{1..3..1}' eingesetzt?
Danke für eure Hilfe
in Chemie (ja, ich bin Schüler) ist mir die Idee gekommen, ein Script zu schreiben, das als Input verschiedene Nichtmetalle bekommt und dann die LEWIS-Formel ausrechnet.
Mal wieder eine schöne Aufgabe zum Nachdenken.
Bis jetzt sieht das Script so aus(gekürzte Version, die nur bestimmte Fälle berechnen kann):
Code:
echo -n "Wie viele Atome gibt es?"
read atoms
for i in {1..${atoms}..1}
do
echo -n "Atomabkürzung: "
read atomname${i}
done
for a in {1..${atoms}..1}
do
if [ ${a} == 1 ]
then
atom=${atomname1}
fi
if [ ${a} == 2 ]
then
atom=${atomname2}
fi
if [ ${a} == 3 ]
then
atom=${atomname3}
fi
if [ $atom == H ]
then
anzahl${a}=1
elif [ $atom == O ]
then
anzahl${a}=2
fi
done
anzahlhoeckst=${anzahl1}
atomhoeckst=1
if [ ${anzahl2} -gt ${anzahlhoeckst} ]
then
anzahlhoeckst=${anzahl2}
fi
if [ ${anzahl3} -gt ${anzahlhoeckst} ]
then
anzahlhoeckst=${anzahl3}
fi
ben23=$((${anzahl2} + ${anzahl3}))
if [ ${ben23} == ${anzahl1} ]
then
if [ ${anzahl2} == 1 ]
then
bind2='-'
else
bind2='='
fi
if [ ${anzahl3} == 1 ]
then
bind3='-'
else
bind3='='
fi
echo ${atomname2}${bind2}${atomname1}${bind3}${atomname3}
fi
Wenn man die Bash Datei ausführt werden 6 Fehler ausgegeben:
Code:
Wie viele Atome gibt es?3
Atomabkürzung: ./chemie.sh: Zeile 6: read: `atomname{1..3..1}': Ist kein gültiger Bezeichner.
./chemie.sh: Zeile 22: [: ==: Einstelliger (unärer) Operator erwartet.
./chemie.sh: Zeile 25: [: ==: Einstelliger (unärer) Operator erwartet.
./chemie.sh: Zeile 40: + : Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist »+ «).
./chemie.sh: Zeile 43: [: ==: Einstelliger (unärer) Operator erwartet.
./chemie.sh: Zeile 49: [: ==: Einstelliger (unärer) Operator erwartet.
==
Ich verstehe die Fehlermeldungen nicht

1. '==' ist doch ein gültiger Operator.
2. Soweit ich weiss, ist '+' ein Rechenzeichen
3. Wieso wird in der Schleife für 'i' '{1..3..1}' eingesetzt?
Danke für eure Hilfe
