将 kafka 代理 ID(zookeeper-shell.sh 结果)保存到 bash 脚本中的变量
Save kafka broker ids (zookeeper-shell.sh result) to variable in bash script
我想检查代理 ID 是否已被使用,但我想在脚本中执行此操作。
./bin/zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids"
给出了我想要的结果,但我如何将其保存到变量中供以后使用?我感兴趣的是 "ls .." 的实际结果。整个输出包括一些饲料:
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is disabled
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
Node does not exist: /brokers/ids
如果我将结果保存到一个变量中,我实际上只会得到这个饲料,最后一行只会打印到屏幕上。
var=$(./opt/kafka/bin/zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids")
然后 echo $var 给出
Connecting to localhost:2181 Welcome to ZooKeeper! JLine support is disabled WATCHER:: WatchedEvent state:SyncConnected type:None path:null
如何将请求的实际结果获取到变量以供以后使用?
我最终没有使用该脚本,如果有人仍然可以使用该脚本,那将不胜感激,但我最终是如何做到的:
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
我想检查代理 ID 是否已被使用,但我想在脚本中执行此操作。
./bin/zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids"
给出了我想要的结果,但我如何将其保存到变量中供以后使用?我感兴趣的是 "ls .." 的实际结果。整个输出包括一些饲料:
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is disabled
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
Node does not exist: /brokers/ids
如果我将结果保存到一个变量中,我实际上只会得到这个饲料,最后一行只会打印到屏幕上。
var=$(./opt/kafka/bin/zookeeper-shell.sh localhost:2181 <<< "ls /brokers/ids")
然后 echo $var 给出
Connecting to localhost:2181 Welcome to ZooKeeper! JLine support is disabled WATCHER:: WatchedEvent state:SyncConnected type:None path:null
如何将请求的实际结果获取到变量以供以后使用?
我最终没有使用该脚本,如果有人仍然可以使用该脚本,那将不胜感激,但我最终是如何做到的:
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