Bash: как избежать $ @ ?

Мне нужно написать сценарий bash, который, помимо прочего, должен передавать все свои аргументы в неприкосновенности другой программе.

Минимальный пример:

$ cat >proxy.sh 
#!/bin/bash

./script.sh $@
^D

$ chmod +x proxy.sh 

$ cat >script.sh 
#!/bin/bash

echo one $1
echo two $2
echo three $3 
^D

$ chmod +x script.sh 

Этот наивный подход не работает для аргументов с пробелами:

$ ./proxy.sh "a b" c
one a
two b
three c

Ожидается:

$ ./proxy.sh "a b" c
one a b
two c
three

Что я должен написать в proxy.sh , чтобы это произошло?

Обратите внимание, что я не могу использовать псевдонимы, proxy.sh должен быть скриптом - он выполняет некоторые действия перед вызовом script.sh .

7
задан Alexander Gladysh 31 December 2010 в 09:18
поделиться