问题1:
执行: sed -i "s/77/$JAVA_HOME:8781/" zookeeper.properties 报错!
分析:替换时变量不能有敏感字符下划线:_,变量也不能为:/7/8/9这种路径格式,因为有敏感字符:/
解决方案:改用替换整行的命令:sed -i "/77/c $JAVA_HOME:8781/abc" zookeeper.properties
问题2:
执行: sed -i "$a export K_H=$myid" zookeeper.properties 报错!
分析: 不支持这种常规的插入变量方式,sed -i $a最好是永远使用单引号''
解决方案:使用两层单引号,内层引住变量即可:sed -i '$a expor K_H='$myid'' zookeeper.properties