记录一次shell脚本的使用

此文章适合刚入门的小白,通俗易懂。大神就不用看了。哈哈。。。

大家在使用自动化部署jenkins时,一个按钮即完成了部署。但是很多小白应该还不清楚这下按钮具体做了哪些操作。

因为此篇文章主要讲的是shell脚本,jenkins部分就简单来说了。按下jenkins构建按钮,大概的操作流程为:编译打包—>发送到指定服务器—>执行shell脚本。

我们先看一个shell脚本的例子。

APP_NAME=lbccrm.jar

P_ID=`ps -ef | grep java | grep $APP_NAME|awk '{print $2}'`;

echo "########$SERVICE_NAME process pid is:$P_ID########"
if [ "$P_ID" == "" ]; then
        echo "########$SERVICE_NAME process not exists or stop success########"
else
        echo "########begin kill $SERVICE_NAME process, pid is:$P_ID########"
    kill -9 $P_ID
fi

sleep 2
current_dir=$(cd `dirname $0`; pwd)
echo "########current_dir is:$current_dir########"
nohup /data/opt/jdk1.8.0_181/bin/java -jar $current_dir/$APP_NAME > $current_dir/lbccrmlog.file   2>&1 &
echo "########$APP_NAME is success########"

那么这个脚本具体都做了什么事呢。有些代码功底,就算没学过shell脚本的人应该也能看懂一大半。下面我就简单的来说一下,其实非常简单。

APP_NAME=lbccrm.jar 定义变量
P_ID=`ps -ef | grep java | grep $APP_NAME|awk '{print $2}'`; 获取我们应用程序的pid
echo命令就是输出文本
if [ "$P_ID" == "" ]; then
        echo "########$SERVICE_NAME process not exists or stop success########"
else
        echo "########begin kill $SERVICE_NAME process, pid is:$P_ID########"
    kill -9 $P_ID
fi
意思就是查到P_ID后杀死该程序
current_dir=$(cd `dirname $0`; pwd)获取当前目录
nohup /data/opt/jdk1.8.0_181/bin/java -jar $current_dir/$APP_NAME > $current_dir/lbccrmlog.file   2>&1 &  重新启动程序
 
 
原文地址:https://www.cnblogs.com/feiyangbahu/p/12486401.html