gpt4 book ai didi

用于通过 Chrome 搜索 Google 以获取终端最后输出的 Bash 函数

转载 作者:行者123 更新时间:2023-11-29 09:34:51 33 4
gpt4 key购买 nike

我正在尝试制作一个 bash 函数,它将为我搜索终端 $_ 的最后输出。例如,当我尝试某些操作并从终端收到错误时,我不会将错误复制并粘贴到 google 中,而是只需键入 google that,它就会为我在 google 中搜索错误。

还将支持打开谷歌主页和随机谷歌搜索。

function google() {
if [ $1 == 'that' ]
then
open /Applications/Google\ Chrome.app/ "http://www.google.com/search?q= $_";
elif [ $1 == '' ]
then
open /Applications/Google\ Chrome.app/ "http://www.google.com"
else
open /Applications/Google\ Chrome.app/ "http://www.google.com/search?q= $@";
fi
}

当我输入 google that 时,我得到了 [ 的搜索结果。我不明白为什么它不起作用?

我在 OSX 10 上使用 Chrome。

最佳答案

  1. 不要使用 [ $foo == 'bar' ],使用 [ "$foo"= 'bar' ][[ "$ foo"== '酒吧']]
  2. 不要使用[ $1 == '' ],使用[ -z "$1"]
  3. 正如 jm666 所指出的,但也许应该更加强调,$_ 不是您终端上的最后输出,它是 [s]特殊变量设置为上一个执行命令的最终参数”,因此您的脚本永远不会真正执行您想要的操作。

综上所述,对您的代码段进行更清晰的重写可能如下所示:

google()
{
local s="$_"
local query=

case "$1" in
'') ;;
that) query="search?q=${s//[[:space:]]/+}" ;;
*) s="$*"; query="search?q=${s//[[:space:]]/+}" ;;
esac

echo open /Applications/Google\ Chrome.app/ "http://www.google.com/${query}"
}

运行示例:

$ echo "foo bar quux"
foo bar quux
$ google that
open /Applications/Google Chrome.app/ http://www.google.com/search?q=foo+bar+quux

$ google
open /Applications/Google Chrome.app/ http://www.google.com/

$ google foo bar quux
open /Applications/Google Chrome.app/ http://www.google.com/search?q=foo+bar+quux

关于用于通过 Chrome 搜索 Google 以获取终端最后输出的 Bash 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16494492/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com