【问题标题】:Google search from Terminal从终端谷歌搜索
【发布时间】:2020-05-09 02:02:54
【问题描述】:

我正在尝试编写一个脚本以便在终端中进行 Google-search。下面是代码:

google.sh

#!/bin/bash
echo "Searching for : $@"
for term in $@ ; do
    echo "$term"
    $search = $search%20$term
done
    open "http://www.google.com/search?q=$search"

每当我尝试将脚本运行为:

./google.sh some string

我得到的错误是:

Searching for : some string
some
./google.sh: line 5: =: command not found
string
./google.sh: line 5: =: command not found

谷歌主页也在浏览器中打开。请告诉我我在这里做错了什么?

【问题讨论】:

  • =前后不能有空格,使用search=$search..
  • 这是一个 bash 脚本,不是 Python
  • 是的,我现在编辑了它..我的错 :)

标签: bash google-search


【解决方案1】:

我知道是什么问题。这些是我所做的修改并且我的代码有效。

#!/bin/bash
echo "Searching for : $@"
for term in $@ ; do
    echo "$term"
    search="$search%20$term"
done
    open "http://www.google.com/search?q=$search"
  1. 从第 5 行的 search 中删除了 $
  2. $search%20$term 放在引号内,如 "$search%20$term"
  3. 按照建议从第 5 行删除空格。

【讨论】:

  • 当我尝试这样的“$ sh google.sh some string”时,为什么它会在下面显示错误“无法获得引用控制台的文件描述符”
  • 它试图打开默认浏览器并在此期间遇到问题...您的默认浏览器是什么?以及您使用的是哪个操作系统?
  • 浏览器:firefox,操作系统:ubuntu
  • 然后尝试使用 xdg-open 而不是 open。我正在使用 mac ,这就是我使用 open 的原因。
【解决方案2】:

我已经制作了这个自定义别名。为我工作。操作系统

希望这对某人有所帮助!

我将此命令添加到我的.zshrc

alias chrome='{read -r arr; open -a "Google Chrome" "${arr}"} <<<'

alias browser='{read -r arr; chrome ${arr} } <<<'

alias google='{read -r arr; browser "https://google.com/search?q=${arr}";} <<<'

示例: google 'How do I google from terminal?'

它将打开您选择的浏览器。 Chrome 适合我,但您也可以使用 Safari 或 Firefox。通过将参数直接传递给搜索查询,您可以直接进入搜索结果!

【讨论】:

  • 在不打开网络浏览器的情况下进行搜索,因此可以通过管道传输结果。
  • 如果您想通过管道传输结果链接,您必须处理返回的内容。意思是你要解析dom。那完全是另一项任务。我的答案只适用于少数搜索 :)
  • 也许我想得太技术了?
【解决方案3】:

为了在 Google 中搜索,我有这个:

googleSearch [查询]

........

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    相关资源
    最近更新 更多