今天接到这样的一个需求 要求开发和生产环境执行的start和stop脚本不一样 (开发脚本带上skywalking和jvm监控 产品环境不带)
- sed -i ‘s/oldString/newString’ filepath
- sed -i ‘s/oldString/newString/g’ filepath
- 分别是 第一个:替换filepath的oldString为newString 第二个:替换filepath的每一个oldString为newString
oldSring可以正则匹配 例如ps -ef.* 就是匹配ps -ef开头的一行
###########################替换atd-webcore.sh中的执行脚本#################
msg1="ps -ef | grep geyecloud-web | grep -v grep | awk '{print $2}' | xargs kill -9 \&"
sed -i "s/ps -ef.*/${msg1}/" ./bin/atd-webcore.sh
msg2="nohup java -XX:+UseG1GC -Xms2048M -Xmx6096M -XX:MaxGCPauseMillis=50 -jar \${jar_dir}\/geyecloud-web-2.0.0.jar 2\>\&1 \&"
sed -i "s/nohup java.*/${msg2}/" ./bin/atd-webcore.sh
注意 特殊字符要加转义字符\ 例如& "