Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 为什么curl在这种情况下会失败?_Unix_Curl_Download - Fatal编程技术网

Unix 为什么curl在这种情况下会失败?

Unix 为什么curl在这种情况下会失败?,unix,curl,download,Unix,Curl,Download,我正在尝试从以下链接下载该文件: http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&sendto=on&log$=seqview&db=nuccore&dopt=gilist&sort=&query_key=1&qty=12654729&filter=all 在web浏览器(Chrome)的地址栏中粘贴上述链接时,我可以将文件另存为“sequence.gi.txt

我正在尝试从以下链接下载该文件:

http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&sendto=on&log$=seqview&db=nuccore&dopt=gilist&sort=&query_key=1&qty=12654729&filter=all
在web浏览器(Chrome)的地址栏中粘贴上述链接时,我可以将文件另存为“sequence.gi.txt”

但当我在终端中尝试此操作时,会出现以下错误:

curl -o test.txt http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&sendto=on&log$=seqview&db=nuccore&dopt=gilist&sort=&query_key=1&qty=12654729&filter=all
[1] 30036
[2] 30037
[3] 30038
[4] 30039
[5] 30040
[6] 30041
[7] 30042
[8] 30043
-bash: log$=seqview: command not found
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
101  7297    0  7297    0     0  59633      0 --:--:-- --:--:-- --:--:-- 79315
[1]   Done                    curl -L -o test.txt http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal
[2]   Done                    sendto=on
[3]   Exit 127                log$=seqview
[4]   Done                    db=nuccore
[5]   Done                    dopt=gilist
[6]   Done                    sort=
[7]-  Done                    query_key=1
[8]+  Done                    qty=12654729

如何在命令行中下载文件?

url中的
&
告诉bash,它之前的所有内容都是应该在后台运行的命令。因此,每个
&
之后的所有内容都被解释为在后台运行的新命令,这就是为什么您在尝试运行命令时会看到大量虚假进程启动的原因。尝试将url放在单引号中
'http://....“
为避免bash将$和(&C)字符解释为特殊字符:

curl -o test.txt 'http://www.ncbi.nlm.nih.gov/sviewer/viewer.cgi?tool=portal&sendto=on&log$=seqview&db=nuccore&dopt=gilist&sort=&query_key=1&qty=12654729&filter=all'

非常感谢。它起作用了……虽然有一部分。现在上面的命令下载了一个文件,但不是我所期望的。当我通过网络浏览器下载它时,我会得到一个文本文件,这是预期的。但通过终端,我得到一个包含错误消息的文件,上面写着“您的会话已过期,请重复搜索”。知道为什么会有不同吗?谢谢。您联系的网站正在通过cookies跟踪浏览会话。curl不使用cookies,除非被告知这样做。不过我不是这方面的专家。一些可能有帮助的信息是和。也许这是另一个问题的主题?=)非常感谢你!我现在明白为什么了。你解释的深度正是我想要的。