2017-03-06 213 views
1

我想为zkCli一起运行两个命令。运行多个zkCli命令

zkCli addauth digest username:password && zkCli setAcl /zknode-path world:anyone:crdwa 

我已经为zknode设置了ACL值,并且想要恢复它。但是运行这个命令给出,认证是无效的。如何在一个会话中运行这两个命令?

回答

0

我设法使用定界符格式 (见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与您希望在单个zkCli会话中执行的两个命令,它们之间有\ n分隔符

然后,我们评估TMPVAR成标准输入一行行,这将使zkCli命令后,执行命令,然后最后执行退出