Linux 将kafka代理ID(zookeeper-shell.sh result)保存到bash脚本中的变量

Linux 将kafka代理ID(zookeeper-shell.sh result)保存到bash脚本中的变量,linux,bash,shell,apache-kafka,apache-zookeeper,Linux,Bash,Shell,Apache Kafka,Apache Zookeeper,我想检查代理id是否已经在使用中,但我想在脚本中这样做 ./bin/zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids" 如果我把结果保存到一个变量中,我实际上只得到这个素材,最后一行只打印到屏幕上 var=$(./opt/kafka/bin/zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids") 我将如何获得请求变量的实际结果以供以后使用?

我想检查代理id是否已经在使用中,但我想在脚本中这样做

./bin/zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids"
如果我把结果保存到一个变量中,我实际上只得到这个素材,最后一行只打印到屏幕上

var=$(./opt/kafka/bin/zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids")

我将如何获得请求变量的实际结果以供以后使用?

我最终没有使用脚本,如果有人仍然能够使用脚本,那将不胜感激,但我最终是如何做到的:

brokerIDs=$(echo dump | nc localhost 2181 | grep brokers/ids | sed 's/\/brokers\/ids\///')
然后检查

if echo ${brokerIDs[@]} | grep -q -w $newNodeBrokerId; 
then      
    echo "Broker with that id already up";
else      
    echo "Starting Kafka"; 
    # Start kafka service here
fi

我最终没有使用脚本,如果有人仍然有办法使用脚本,那将不胜感激,但我最终是如何做到的:

brokerIDs=$(echo dump | nc localhost 2181 | grep brokers/ids | sed 's/\/brokers\/ids\///')
然后检查

if echo ${brokerIDs[@]} | grep -q -w $newNodeBrokerId; 
then      
    echo "Broker with that id already up";
else      
    echo "Starting Kafka"; 
    # Start kafka service here
fi

您可以使用以下命令获取输出的最后一行:

./zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids" | tail -n 1

/zookeeper-shell.sh localhost:2181您可以使用以下命令获取输出的最后一行:

./zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids" | tail -n 1

/zookeeper-shell.sh localhost:2181 hum。。如果我理解您想要的是在您给出的命令输出的最后一行中打印的代理id列表,对吗?我的意思是,据我所知,这个命令返回一个包含所有代理ID的数组,如:[0,1,2]。这是您想要的变量吗?是的,或者如果没有设置,那么该变量将设置为“Node not exist:/brokers/ids”,这是它在我的示例hum中返回的结果。。如果我理解您想要的是在您给出的命令输出的最后一行中打印的代理id列表,对吗?我的意思是,据我所知,这个命令返回一个包含所有代理ID的数组,如:[0,1,2]。这是您想要的变量吗?是的,或者如果没有设置变量,那么该变量将设置为“Node not exist:/brokers/ids”,这是它在我的示例中返回的结果