Danke shiro:
Du hast offenbar bei der Formel eingestreute Leerzeichen verwendet, die dann als Parameter-Trennzeichen genutzt wurden.
Ich verstehe nicht, wo die sind, ich habe:
1 2 3 | function StringConcat() { awk "BEGIN{printf \"$2|\",$1}"; } strErgebnis+=$(StringConcat $AnzFehl/$AnzSaveYes*100 "%'7.2f %%") echo "###$AnzFehl###$AnzSaveYes###" |
Die Variablen-Werte werden per psql aus einer Datenbank gelesen; die echo-Zeile liefert:
### 203### 2549###
Kein Leerzeichen in den Code-Zeilen 1..3, oder? Trotzdem Fehler ... Mit Anführungszeichen
1 2 | strErgebnis+=$(StringConcat "$AnzFehl/$AnzSaveYes*100" "%'7.2f %%") # ^ ^ |
wird das korrekte Ergebnis geliefert. Solte ich alle Teilstring-Zeilen mit diesen Anführungszeichen ausstatten?