我想为zkCli一起运行两个命令。
zkCli addauth digest username:password && zkCli setAcl /zknode-path world:anyone:crdwa
我已经为zknode设置了ACL值,并希望将其还原。但运行此命令时,身份验证无效。如何在一个会话中运行这两个命令?
答案 0 :(得分:0)
我设法使用 heredoc 格式在zkCli中运行多个命令 (见How does ` cat << EOF` work in bash?)
将此代码段插入bash文件
TMPVAR="addauth digest username:password\nsetAcl /zknode-path world:anyone:crdwa"
/zookeeper-3.4.10/bin/zkCli.sh <<EOF
$(echo -e ${TMPVAR})
quit
EOF
首先,我们使用您希望在单个zkCli会话中执行的两个命令设置 TMPVAR ,并在它们之间使用\ n分隔符
然后我们逐行评估 TMPVAR 进入STDIN,这将使zkCli在命令后执行命令,然后最终执行 quit