我正在尝试运行使用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"'
如何修正引号以获得正确的词组?