如何解决jenkins 执行shell脚本 sh: ... not found的问题
作者:一片三叶草
这篇文章主要介绍了如何解决jenkins 执行shell脚本 sh: ... not found的问题,具有很好的参考价值,希望对大家有所帮助。
jenkins 执行shell脚本 sh: ... not found
最近在玩jenkins的时候出现了以下问题,两次遇到这种问题,所以记录一下
这是因为没有带上系统的环境变量。
只有在 shell中第一行加上这句话:#!/bin/bash -ilex
Jenkins执行脚本文件
Jenkins执行脚本文件如下(startup.sh):
#!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 export JAVA_HOME=/usr/src/java/jdk1.8.0_201 APP_NAME=school-rest-1.0.0-SNAPSHOT.jar FULL_PATH=/usr/data/school-rest/school-rest-1.0.0-SNAPSHOT.jar #启动方法 start(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` if [ "$pid" ]; then echo "$APP_NAME is already running. pid=$pid ." else nohup $JAVA_HOME/bin/java -jar $FULL_PATH --spring.profiles.active=dev >> catalina.out 2>&1 & echo $! echo "$APP_NAME now is running" fi } #停止方法 stop(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` if [ "$pid" ]; then kill -9 $pid echo "Pid:$pid stopped" else echo "$APP_NAME is not running" fi } #输出运行状态 status(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'` if [ "$pid" ]; then echo "$APP_NAME is running. Pid is ${pid}" else echo "$APP_NAME is NOT running." fi } #根据输入参数,选择执行对应方法,不输入则执行使用说明 case "$1" in start) start ;; stop) stop ;; status) status ;; restart) stop sleep 5 start ;; *) echo "Usage:{start|stop|status|restart}" ;; esac exit 0
只需要在jenkins指定执行文件即可:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。