¿Cómo conservar las comillas dobles en $ @ en un script de shell?

Digamos que tengo un script de shell realmente simple 'foo':

  #!/bin/sh
  echo $@

Si lo invoco así:

  foo 1 2 3

Felizmente imprime:

  1 2 3

Sin embargo, supongamos que uno de mis argumentos incluye comillas dobles y contiene espacios en blanco:

  foo 1 "this arg has whitespace" 3

foo felizmente imprime:

  1 this arg has whitespace 3

¡Las comillas dobles se han eliminado! Sé que Shell cree que me está haciendo un favor, pero ... Me gustaría llegar a la versión original de los argumentos, sin ser molestado por la interpretación de Shell. ¿Hay alguna manera de hacerlo?

Respuestas a la pregunta(5)

Su respuesta a la pregunta