I’m trying to write a bash script, and I’m running into a quoting problem.
The end result I’m after is for my script to call:
lwp-request -U -e -H "Range: bytes=20-30"
My script file looks like:
CLIENT=lwp-request
REQ_HDRS=-U
RSP_HDRS=-e
RANGE="-H "Range: bytes=20-30"" # Obviously can't do nested quotes here
${CLIENT} ${REQ_HDRS} ${RSP_HDRS} ${RANGE}
I know I can’t use nested-quotes. But how can I accomplish this?
Normally, you could escape the inner quotes with
\:But this won’t work when running a command – unless you put
evalbefore the whole thing:However, since you’re using bash, not sh, you can put separate arguments in arrays:
This can be extended to: