如何从命令行搜索 goosh.org



我想编写一个简单的 bash 脚本来从命令行搜索 goosh.org 并在浏览器中打开结果。(或者,也许您甚至根本不会将其称为bash脚本,因为它所做的只是进行浏览器调用。

我创建了一个名为 goosh 的文件,其中包含一行:

open "http://goosh.org/#$1"

当搜索词只有一个单词时,无需将搜索括在引号中,这就可以工作:

$ goosh monarch

但是当我使用多个搜索词时它会失败:

$ goosh monarch butterfly

这不起作用:

open "http://goosh.org/#$1 $2 $3 $4 $5 $6 $7 $8 $9"

我该怎么做?

空格

(十六进制值0x20)在浏览器中转换为%20。您可能希望对输入值使用 sed

echo 1 2 3 4 5 6 7 8 | sed -e 's/ /%20/'

会给你一个输出

1%202%203%204%205%206%207%208

我建议您以相同的方式解析脚本的"$@"输入(提供给脚本的所有内容),看看这是否不能为您提供所需的结果。

编辑:

您可以尝试以下简单函数:

function goosh() {
  ARGS=$(echo "$@" | sed -e 's/ /%20/g');
  echo "http://www.goosh.org/#$ARGS";
}

这实际上不会调用站点;它只会将输出转储到您的控制台(因此您可以确保变量正确)。只需用open替换echo,应该没问题。

例:

  $ goosh When will Apple buy stock in Microsoft
  http://www.goosh.org/#When%20will%20Apple%20buy%20stock%20in%20Microsoft

相关内容

  • 没有找到相关文章

最新更新