系统:Ubuntu 18.04.5 LTS
添加zookeeper环境变量时,报错:“sed: -e 表达式 #1, 字符 7: 未终止的地址正则表达式”
相关代码如下:
for node in ${nodes[*]}
do
ssh test@$node sed -i "/export PATH=/ s/$/:/home/test/opt/zookeeper/bin/" /home/test/.bashrc
done
折腾一阵后无果...
最后,我发现代码sed -i "/export PATH=/ s/$/:/home/test/opt/zookeeper/bin/" /home/test/.bashrc在命令行窗口能够执行成功...
于是,我给ssh后面的命令加上单引号,脚本执行成功,问题解决!
for node in ${nodes[*]}
do
ssh test@$node 'sed -i "/export PATH=/ s/$/:/home/test/opt/zookeeper/bin/" /home/test/.bashrc'
done
PS:这个问题应该不太能遇得到,因为添加变量后通常要执行source ~/.bashrc使变量生效,ssh后的多条命令本来就需要加单引号。



