我有以下代码,我称之为谷歌
#!/bin/bash
q=$1
open "http://www.google.com/search?q=$q"
用关键字打开Firefox。例如,通过
google cabal
我希望在命令后输入参数时为命令添加特定的keywoards。以下是一个例子
google -x cabal
它搜索序列,例如
"cabal is"
如何在Bash中为命令添加参数?
答案 0 :(得分:3)
#!/bin/bash
while getopts "x:" option; do
case "$option" in
x) keyword="$OPTARG";;
esac
done
#echo "$keyword"
open "http://www.google.com/search?q=$keyword"
:指定x是预期的参数。
答案 1 :(得分:3)
由于您有两个信息来源(搜索词和修饰符),我将使用以下内容。它允许使用单个修饰符(-x
附加“is”并将整个内容括在引号-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搜索页。
答案 2 :(得分:2)
#!/usr/bin/env bash
while [[ $1 = - ]]; do
case $1 in
-x) shift; query+=" $1 is" ;;
-d) shift; query+=" define:$1" ;;
-s) shift; query+=" site:$1" ;;
-t) shift; query+=" title:$1" ;;
-i) params+="&btnI" ;;
# ...
-h)
echo "usage: ${0##*/} [-x arg] [-d arg] [-s arg] [-t arg] [-ih]"
echo
echo " -x: Add '[arg] is' to the google query."
echo " -d: Add 'define:[arg]' to the google query."
echo " -s: Add 'site:[arg]' to the google query."
echo " -t: Add 'title:[arg]' to the google query."
echo " -i: Do an I'm Feeling Lucky-search."
echo " -h: Show this help text."
exit ;;
esac
shift
done
query+="$*" # implode all other arguments into the query string.
open "http://www.google.com/search?q=$query$params"