Man sollte noch auf den Unterschied zwischen
und
hinweisen.
Die erste Versionen teilt den String
$foo an einzelnen Leerzeichen auf, d.h. wenn irgendwo mehrere Leerzeichen aufeinander folgen, dann werden
leere Felder fuer den Raum "zwischen den Leerzeichen" zurueckgegeben. Tabs werden gar nicht als Trenner genommen.
Die Version mit
" " hat dagegen eine besondere Bedeutung: Es werden Folgen von Whitespace (also Leerzeichen und Tabs) zusammengefasst, und fuehrender Whitespace am Anfang einer Zeile wird automatisch uebersprungen.
split() arbeitet in diesem Fall also genauso wie das Programm
awk.
Die Variante
entspricht eher dem zweiten Fall, aber fuehrender Whitespace fuehrt hier zu einem leeren ersten Feld.
Fuer das angegebene Problem und aehnliche Faelle, in denen Daten durch einfache oder mehrfache Leerzeichen oder Tabs getrennt sind, ist es also definitiv besser,
split " ", $temp1 zu benutzen.