Hello, On Mon, 09 May 2011, Kevin McCarthy wrote: >On Mon, May 09, 2011 at 01:44:58PM +0800, Xi Shen wrote: >> It is not specific to Gentoo. But do not know where to search or post it :) >> >> My script looks like: >> >> url="http://mypage" >> curl_opts="-x ''" >> curl $url -d \"mydata\" $curl_opts >> >> If I execute it, I got an error from curl, saying it cannot resolve >> the proxy ''. >> > >While bash arrays probably aren't required for this, the following seems >to work OK:
When using the bash anyway, arrays are the thing to use! >curl_opts=(-x "") >curl $url -d \"mydata\" "${curl_opts[@]}" > >But I'm sure there's a quotes-only solution, too. I can't find one. Seems to be some curl weirdness layered on top. Even with strace -eexecve curl "$url" -d "mydata" $curl_opts and (quoted, escaped etc.) variations thereof, I haven't found a version that works. If you want to just DL some stuff, with POST, no proxy, why not use wget? wget --post-data="mydata" --no-proxy "$url" (and if you want the result on stdout, just add '-O -', i.e.: wget --post-data="mydata" --no-proxy -O - "$url" ). Or if you want the options as such: url=... wget_opts="--no-proxy -O -" ### special chars need to be ### once-escaped when using ### options/arguments with spaces, ### quotes etc. post_data="foo=bar" set -x wget ${wget_opts} --post-data="$post_data" "$url" ### ^^^^^^^^^^^^ no quotes here, or use an array! HTH, -dnh -- Doesn't it bother you, that we have to search for intelligent life --- OUT THERE??