Manejar espacios en blanco en argumentos para un script bash

Tengo problemas para manejar argumentos que contienen espacios en blanco en un script my bash.

La secuencia de comando

#!/bin/bash
for i in $*
do
    echo "$i"
done

La llamada (con 2 argumentos)

$ ./script.sh "a b" "c"

La salida real (como si hubiera 3 argumentos)

a
b
c

La salida esperada (como si hubiera 2 argumentos)

a b
c

Puede alguien explicar cómo obtener el resultado esperado?

Respuestas a la pregunta(3)

Su respuesta a la pregunta