Мне нужно написать 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
.