Bash Scripting with Quotes and Double Quotes

时间:2015-08-03 16:54:24

标签: bash shell jmx

我正在尝试运行使用CJMX客户端访问SOLR Jmx MBean的bash脚本。

CJMX具有运行查询的特定规则。

实施例: Mbeans名称必须包含在单引号中。 喜欢:'solr/collection:type=org.apache.solr.handler.dataimport.DataImportHandler,id=org.apache.solr.handler.dataimport.DataImportHandler'

如果MBeans的属性有多个单词。它必须包含在单引号中。喜欢:"Rows Fetched"

我正在使用GETOPTS来解析选项。所以我必须使用引号来发送多个单词选项。

这是我运行脚本的命令。

./jmx.sh -b solr/collection:type=org.apache.solr.handler.dataimport.DataImportHandler,id=org.apache.solr.handler.dataimport.DataImportHandler
-a "Rows Fetched"

然后这是我的剧本

while getopts ":p:b:a:w:c:s:" OPTION; do
 case "$OPTION" in


      b)
              BEAN="$OPTARG"

              ;;
      a)
              ATTRIBUTE="$OPTARG"
              ;;

  esac
 done

 RESULT=$( $JAVA {Unnecessary} cjmx.Main "mbeans "\'$BEAN\'" select "\"$ATTRIBUTE"\"")

当前RESULT命令发送CJMX错误短语。这里:

'mbeans '\''solr/song:type=org.apache.solr.handler.dataimport.DataImportHandler,id=org.apache.solr.handler.dataimport.DataImportHandler'\'' select "Rows' 'Fetched"'

正确的短语,我必须发送CJMX。

'mbeans 'solr/song:type=org.apache.solr.handler.dataimport.DataImportHandler,id=org.apache.solr.handler.dataimport.DataImportHandler' select "Rows Fetched"'

如何修正引号以获得正确的词组?

0 个答案:

没有答案