Como preservar aspas duplas em $ @ em um script de shell?

Digamos que eu tenha um shell script realmente simples 'foo':

  #!/bin/sh
  echo $@

Se eu invocá-lo assim:

  foo 1 2 3

Imprime alegremente:

  1 2 3

No entanto, digamos que um dos meus argumentos esteja entre aspas duplas e contenha espaço em branco:

  foo 1 "this arg has whitespace" 3

foo imprime alegremente:

  1 this arg has whitespace 3

As aspas duplas foram retiradas! Sei que o shell acha que está me fazendo um favor, mas ... eu gostaria de chegar à versão original dos argumentos, sem ser incomodado pela interpretação do shell. Existe alguma maneira de fazer isso?

questionAnswers(5)

yourAnswerToTheQuestion