由于您有两个信息来源(搜索项和修饰符),我会使用以下内容。它允许使用单个修饰符(-x
用于追加“is”并将整个事物放在引号中,-d
用于前缀“define:”并将整个事物括在引号中,而-w
仅用于添加搜索词以限制您访问wikipedia) 。
请注意,引号的位置由修饰符控制,因为它可能需要引用传递给Google的参数或在该参数外添加搜索项。您完全可以控制网址中生成的内容(确保在发送到产品之前将echo
变回open
)。
#!/bin/bash
prepend=""
append=""
case "$1" in
-h)
echo 'Usage: google [-{hxdw}] [<arg>]'
echo ' -h: show help.'
echo ' -x: search for "<arg> is"'
echo ' -d: search for "define:<arg>"'
echo ' -w: search for <arg> site:wikipedia.org'
exit;;
-x)
prepend="\""
append=" is\""
shift;;
-d)
prepend="\"define:"
append="\""
shift;;
-w)
prepend=""
append=" site:.wikipedia.org"
shift;;
esac
if [[ -z "$1" ]] ; then
query=""
else
query="?q=${prepend}${1}${append}"
fi
echo http://www.google.com/search${query}
下面是一些样本输出:
pax> google -w "\"bubble sort\""
http://www.google.com/search?q="bubble sort" site:.wikipedia.org
pax> google cabal
http://www.google.com/search?q=cabal
pax> google
http://www.google.com/search
pax> google -d cabal
http://www.google.com/search?q="define:cabal"
pax> google -x wiki
http://www.google.com/search?q="wiki is"
pax> google -h wiki
Usage: google [-{hxdw}] [<arg>]
-h: show help.
-x: search for "<arg> is"
-d: search for "define:<arg>"
-w: search for <arg> site:wikipedia.org
如果不提供一个搜索词,你只得到了谷歌搜索页面。
我需要在脚本中放置open-command吗? – 2009-05-20 21:58:29
我向它添加了打开命令。 – seb 2009-05-20 23:45:58