Today I needed to write a bash script that eventually calls another program,
passing all the arguments to it. It seemed like a simple enough task: just use
$@. However, the problem was that the program accepts arguments surrounded
with quotes, and the
$@ stripped the quotes away. I was really surprised that
google didn’t immediately find an answer.
And to save you the trouble, here’s a script that preserves the quotes:
#!/bin/bash # blah blah blah ./foo "$@"
For more on posts, see here.