我需要能够传递文件下载的URL,以及要保存到的文件的路径.
我认为它与CURL上的-O和-o有关,但我似乎无法弄明白.
例如,这就是我现在在bash脚本中使用的内容:
#!/bin/sh
getsrc(){
    curl -O $1
}
getsrc http://www.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.tar.gz
如何更改curl语句以便我可以这样做
getsrc http://www.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.tar.gz /usr/local
并将文件保存到/ usr/local?
如果这是一个脚本,你应该确保你准备好应对任何意外情况:
getsrc() {
    ( cd "$2" && curl -O "$1" )
}
这意味着引用您的参数,以防它们包含shell元字符,如问号,星号,空格,制表符,换行符等.
它还意味着在目标目录不存在的情况下在命令和命令&&之间使用运算符(如果你不使用它,curl仍会下载而不会出错但是将文件放在错误的位置!)cdcurl
该函数有两个参数:
要指定本地文件名而不是路径,请使用更简单的文件:
getsrc() {
    curl "$1" > "$2"
}
嗯......你可能想做的是
getsrc(){
    ( cd $2 > /dev/null ; curl -O $1 ; ) 
}
-O(大写字母O)表示存储在名为远程文件的本地,但忽略远程路径组件.为了能够存储在特定目录中,最简单的方法是cd到它...我在子shell中这样做,所以dir更改不会传播