当我访问这个网址时
https://github.com/search?q=jquery+stars%3A>10+forks%3A<10&type=Repositories
对 lynx 使用这个命令:
lynx -accept_all_cookies https://github.com/search?q=jquery+stars%3A>10+forks%3A<10&type=Repositories
首先我得到这样的代码 ->[1] 4324
然后另一行写着 ->bash: 10: No such file or directory
那么,问题是我如何浏览这个 url url lynx?我也无法浏览curl
这个 url,curl 也显示几乎相同。
我正在使用 ubuntu 12.04 LTS
答案1
Bash 正在解释 URL。<
和&
对它来说很重要,所以它们会被破坏,而不会传递给 lynx。
简单的答案是引用 url:
lynx -accept_all_cookies 'https://github.com/search?q=jquery+stars%3A>10+forks%3A<10&type=Repositories'
我在这里使用单引号,因此甚至$
不会被解释。
答案2
问题在于,由于您没有用引号引起来,您的 URL 包含由 shell 解释的特殊字符。因此,简而言之,请使用引号:
lynx -accept_all_cookies 'https://github.com/search?q=jquery+stars%3A>10+forks%3A<10&type=Repositories'
详细回答:这里的具体问题是>10
和&
。&
将作业发送到后台:
$ sleep 5 &
[1] 2015
请注意,上述操作会导致出现类似的消息,括号中的数字是作业 ID,在这种情况下,1
因为它是后台运行的唯一作业,另一个数字是后台进程的进程 ID (PID)。
下一个问题是,<10
这意味着“从名为‘10’的文件读取输入,而>10
shell 将其解释为“将输出重定向到名为‘10’的文件”。例如:
$ echo "Hello" > 10
$ cat 10
Hello
如果您简单地引用这些内容,就可以避免所有这些问题,引用将保护特殊字符不被 shell 解释。