#! /bin/bash
sum=0
for number in $*
do
x=$((sum + number))
echo $x
done
Ich versuche einfach, ein Skript namens "hinzufügen" zu erstellen, die bei der Ausführung Positionsparameter hinzufügen wird. Anstatt die Zahlen hinzuzufügen, zeigt es sie einfach so an, wie es normalerweise eine Schleife wäre. Z.B.Kann nicht herausfinden, wie man Arithmetik in einer Bash-Schleife (für)
$ add 1 2 3 4 5 6
1
2
3
4
5
6
Was mache ich falsch?
BTW, 'für Nummer in $ *' ist in der Regel ein Code riechen - es bringt dich in Schwierigkeiten mit Einträgen mit Leerzeichen, mit Einträgen, die als Klumpen interpretiert werden können, und in anderen Fällen. Wenn Sie keinen guten Grund haben, etwas anderes zu tun, verwenden Sie 'for number; do' oder 'für die Nummer in" $ @ "; do '(beide sind völlig äquivalent). Siehe auch http://shellcheck.net/, das wird dies automatisch für dich erkennen. –