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?