系统中命令正常,jenkins报找不到命令

问题发生场景,项目需要采用grunt命令编译,执行Jenkins时报错内容如下

系统中命令正常,jenkins报找不到命令

 命令找不到。先通过进入系统 使用grunt -version,命令正常

系统中命令正常,jenkins报找不到命令

 参考 这个博文https://blog.csdn.net/hqbootstrap1/article/details/88097200发现是

  • 在Linux主机是通过修改 /etc/profile 文件来配置环境变量,则问题可能是Jenkins在执行shell脚本时没有加载 /etc/profile 文件,因此找不到 grunt命令,会提示“命令未找到”。

  • Jenkins默认情况下执行shell脚本是使用非登录方式,然而非登录方式不会加载 /etc/profile 文件,在 Execute shell 中 添加如 #!/bin/sh -l 命令修改为登录方式即可解决问题。

将#!/bin/bash  改为  #!/bin/bash -l    

系统中命令正常,jenkins报找不到命令

保存,重新构建,执行成功