Bash script for downloading files with Curl
bash, curl, download, sed
Solution
quoting the arguments correctly, rather than transforming them might be a better approach
It's quite normal to expect to have to quote spaces in arguments to shell scripts
e.g.
#!/bin/bash
clear
echo Downloading $1
echo `curl -# -C - -o "${2}" "${1}"`
called like so
`./myscript http://www.foo.com "my file"`
alternatively, escape the spaces with a '\' as you call them
./myscript http://www.example.com my\ other\ filename\ with\ spaces
Problem
I'm trying to knock together a little batch script for downloading files, that takes a URL as its first parameter and a local filename as its second parameter. In testing I've learned that its tripping up on spaces in the output filename, so I've tried using sed to escape them, but its not working. ``` #!/bin/bash clear echo Downloading $1 echo filename=`sed -e "s/ /\\\ /g" $2` echo $filename echo eval curl -# -C - -o $filename $1 ``` but I get the message sed: outfile.txt: No such file or directory which suggests its trying to load the output file as input to sed instead of treating the output filename as a string literal. What would be the correct syntax here?