Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Bash中将参数添加到命令中_Bash_Parameters - Fatal编程技术网

无法在Bash中将参数添加到命令中

无法在Bash中将参数添加到命令中,bash,parameters,Bash,Parameters,我有以下代码,我称之为谷歌 #!/bin/bash q=$1 open "http://www.google.com/search?q=$q" 它用关键字打开Firefox。例如,通过 google cabal 我希望在命令后放置参数时,将特定的键盘添加到命令中。下面是一个例子 google -x cabal 例如,它搜索序列 "cabal is" 如何在Bash中向命令添加参数? #!/bin/bash while getopts "x:" option; do case "$o

我有以下代码,我称之为谷歌

#!/bin/bash

q=$1
open "http://www.google.com/search?q=$q"
它用关键字打开Firefox。例如,通过

google cabal
我希望在命令后放置参数时,将特定的键盘添加到命令中。下面是一个例子

google -x cabal
例如,它搜索序列

"cabal is"
如何在Bash中向命令添加参数?

#!/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之后应为参数。

因为您有两个信息源(搜索词和修饰符),所以我将使用以下内容。它允许单个修饰符(
-x
用于附加“is”并将整个内容括在引号中,
-d
用于前缀“define:”并将整个内容括在引号中,
-w
用于简单地添加搜索词以限制您访问维基百科)

#!/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"
请注意,引号的位置由修饰符控制,因为它可能需要引用传递给Google的参数,或者在该参数之外添加搜索词。您可以完全控制URL中生成的内容(确保在交付生产之前将
echo
转换回
open

#/bin/bash
prepend=“”
append=“”
案件“$1”
-h)
echo“用法:谷歌[-{hxdw}][]”
echo'-h:显示帮助。”
echo'-x:搜索“is”'
echo'-d:搜索“define:”
echo'-w:搜索网站:wikipedia.org'
出口
-十)
prepend=“\”
append=“is\”
转移
-(d)
prepend=“\”定义:
append=“\”“
转移
-w)
prepend=“”
append=“site:.wikipedia.org”
转移
以撒
如果[-z“$1”];然后
query=“”
其他的
query=“?q=${prepend}${1}${append}”
fi
回响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
pax>google-w“气泡排序”
http://www.google.com/search?q=“气泡排序”网站:。wikipedia.org
帕克斯>谷歌阴谋集团
http://www.google.com/search?q=cabal
帕克斯>谷歌
http://www.google.com/search
帕克斯>谷歌d阴谋集团
http://www.google.com/search?q=“定义:阴谋集团”
pax>google-Xwiki
http://www.google.com/search?q=“维基是”
pax>google-hwiki
用法:谷歌[-{hxdw}][]
-h:伸出援手。
-x:搜索“是”
-d:搜索“定义:”
-w:搜索网站:wikipedia.org

如果你不提供搜索词,你只会得到谷歌搜索页面。

我不确定$OPTARG参数。我只想在参数$1中添加单词“is”。我应该把它放在参数$option中,然后在open语句中调用它吗?例如在x)keyword=“$OPTARG is”处添加它@seb:这个命令似乎有一个bug。当我不使用选项x时,它会让我进入网站:@Pax:谢谢你的回答!——我在搜索许多单词时遇到了一个小问题。这个问题可以通过将搜索模式放在引号中来解决。
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