Поскольку у вас есть два источника информации (поисковый запрос и модификатор), я бы использовал следующее. Он позволяет использовать один модификатор (-x
для добавления «есть» и заключения всего в кавычки, -d
для добавления префикса «define:» и заключения всего в кавычки и -w
для простого добавления поискового запроса ограничить вас википедией).
Обратите внимание, что размещение цитат контролируется модификатором, поскольку может потребоваться процитировать аргумент, переданный в Google, или добавить поисковые термины вне этого аргумента. Вы имеете полный контроль над тем, что создается в URL-адресе (перед отправкой в производство убедитесь, что 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
Если вы не предоставите поисковый запрос, вы просто получите страницу поиска Google.