如何解决jenkins 执行shell脚本 sh: ... not found的问题

 更新时间:2023年06月03日 09:14:11   作者:一片三叶草  
这篇文章主要介绍了如何解决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指定执行文件即可:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Shell中的变量使用小结

    Shell中的变量使用小结

    这篇文章主要介绍了Shell中的变量使用小结,本文总结了变量的语法、常见使用形式等内容,并分别给出代码示例,需要的朋友可以参考下
    2015-05-05
  • 详解linux下利用crontab创建定时任务

    详解linux下利用crontab创建定时任务

    这篇文章主要介绍了linux下利用crontab创建定时任务的相关资料,需要的朋友可以参考下
    2017-04-04
  • Shell脚本实现的阳历转农历代码分享

    Shell脚本实现的阳历转农历代码分享

    这篇文章主要介绍了Shell脚本实现的阳历转农历代码分享,本文是作者一个星期的工作成果,得来不易,需要的朋友可以参考下
    2014-09-09
  • 将shell脚本正确的放在后台运行方式

    将shell脚本正确的放在后台运行方式

    这篇文章主要介绍了将shell脚本正确的放在后台运行方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • linux awk时间计算脚本及awk命令详解

    linux awk时间计算脚本及awk命令详解

    这篇文章主要介绍了linux awk时间计算脚本及awk命令详解的相关资料,需要的朋友可以参考下
    2015-11-11
  • 详解Shell编程之变量数值计算(一)

    详解Shell编程之变量数值计算(一)

    本篇文章主要介绍了详解Shell编程之变量数值计算,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • shell实现自动adsl拨号并检测连接状况脚本分享

    shell实现自动adsl拨号并检测连接状况脚本分享

    这篇文章主要介绍了shell实现自动adsl拨号并检测连接状况脚本分享,本文给出了两个脚本,一个是自动拨号脚本,一个是检测连接状态脚本,需要的朋友可以参考下
    2014-12-12
  • 非常实用的23个Shell脚本实例

    非常实用的23个Shell脚本实例

    为大家整理了23个实例,通过23个实战经典脚本实例,可以拿来就用,根据大家的需求可以直接使用,为大家整理了23个实例,希望此文章对各位有所帮助
    2021-06-06
  • Shell编程 Bash引号的那点事

    Shell编程 Bash引号的那点事

    促使我想写这个系列的文章,是因为看到总有人提到相同的问题,犯相同的错误,曾经我也是这么过来的,不忍心看到后面还有人经常这么曲折的过来
    2015-01-01
  • Shell脚本生成Go的程序包的实现步骤

    Shell脚本生成Go的程序包的实现步骤

    通过编写Shell脚本,我们可以大大简化Golang项目的打包和部署流程,本文就来介绍一下Shell脚本生成Go的程序包的实现步骤,感兴趣的可以了解一下
    2024-01-01

最新评论