您的位置:首页 > 运维架构 > Shell

Jenkins执行远程主机Shell,提示‘命令不存在'

2020-02-01 13:37 2386 查看

Jenkins执行远程主机Shell,提示‘命令不存在’

场景

我在Centos主机上安装好Maven,并且配合好了环境变量。

通过

mvn -version
,也能看到版本

然而使用Jenkins的publish over ssh 插件在访问这个主机执行到

mvn clean install
的时候,遇到了问题

mvn这个命令与其他的命令最大的不同就是,mvn配置于
/etc/profile
的环境变量中。找了很多资料得知,jenkins执行shell时,并不会加载这个环境变量中的内容。

可以试试在jenkins的shell中执行,

echo $path
,看看打印出来的结果

打印出来的是这么一串东西…

而我们在Centos上打印的是自己配置的环境变量:
可见环境变量确实不对,至少PATH都不一样。

解决办法

主要看到了三种办法,但是我比较背,操作的方式可能不对,有两种方式未实现,直达遇到了第三种..
  1. #!/bin/sh -l
    ,在Shell脚本前面加上 #!/bin/sh -l,意为以登录方式执行脚本。
  2. 创建软连接的方式
  3. 在Shell脚本前面加上
    source /etc/profile
    ,这句话本身就是让环境变量配置生效。我们修改了环境变量之后也会执行这句话。

第三种一步到位实现了。能够执行mvn命令了。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
菠萝吃西瓜 发布了4 篇原创文章 · 获赞 0 · 访问量 47 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: