Lösungen
zu 1
3 0
Warum? Der Feldoperator bindet stärker, die Inkrementierung erfolgt aber erst nach Abarbeitung des print-Befehls.
Zur Verdeutlichung: Die Befehlsfolge
print $2++ print $2
könnte durch
i=$2+0 print i i+=1 print i
ersetzt werden. Beide Programmabschnitte liefern das gleiche Ergebnis.
Warnung: Theoretisch kann man sich die Anweisung $2++
zur Verdeutlichung der Priorität auch als ($2)++ vorstellen. Das sollte aber auf das Gedächtnis beschränkt bleiben und nicht Eingang in den awk-Programmcode finden. Das funktioniert nämlich nicht - Syntax Error. (i)++
ist für awk-Parser eben nicht das gleiche wie i++
.
zu 2
2 -1
Die Dekrementierung erfolgt vor Abarbeitung des print-Befehls.
zu 3
0 0
zu 4
1 1
zu 5
6
zu 6
1
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.