Rob*_*ell 4 bash curl sed download
我正在尝试将一个小批量脚本拼凑起来下载文件,它将URL作为其第一个参数,将本地文件名作为其第二个参数.在测试中,我已经了解到它在输出文件名中跳过了空格,所以我尝试使用sed来逃避它们,但它没有用.
#!/bin/bash
clear
echo Downloading $1
echo
filename=`sed -e "s/ /\\\ /g" $2`
echo $filename
echo eval curl -# -C - -o $filename $1
Run Code Online (Sandbox Code Playgroud)
但我收到了消息
sed:outfile.txt:没有这样的文件或目录
这表明它试图将输出文件作为输入加载到sed而不是将输出文件名视为字符串文字.
这里的语法是什么?
正确引用参数,而不是转换它们可能是一种更好的方法
期望必须在shell脚本的参数中引用空格是很正常的
例如
#!/bin/bash
clear
echo Downloading $1
echo `curl -# -C - -o "${2}" "${1}"`
Run Code Online (Sandbox Code Playgroud)
这样叫
./myscript http://www.foo.com "my file"
或者,当你调用它们时,用'\'来逃避空格
./myscript http://www.example.com my\ other\ filename\ with\ spaces
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22902 次 |
| 最近记录: |