持续集成 求助 Jenkins shell 执行 command not found 问题

尼古拉斯赵四 · 2018年07月19日 · 最后由 loshu2003 回复于 2018年07月21日 · 4419 次阅读

我在 执行 server 上 已经安装了 pytest ,并且执行 pytest 命令正常
但是在 jenkins shell 上就提示 not found, 已经 export 相应的 PATH 了
搞了半天实在 没解决,求助下 各位大佬

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 5 条回复 时间 点赞
  1. 用 env 命令,看 Jenkins shell 和你 ssh 的 shell 环境是否一致
  2. 跑命令前,先用 source 命令加载环境变量配置。命令用法自行百度

这个区别是 shell 的交互式/非交互式区别引起的,你要了解下相关知识

陈恒捷 回复

source 也用了 然后 登录方式改成了 #!/bin/bash 怎么都不行 。。。搞了一下午 然后 slave 换了另外一台 就好了。。。配置什么都没改。 都不知道。。。那一台报错的到底哪里出问题

如果提示 command not found,可以确定那个可执行程序一定不在 PATH 里。
你可以把 PATH 变量打印出来看看。echo $PATH
jenkins 登录 slave 时,并不会 source /etc/bashrc, ~/.bashrc, ~/.bash_profile 等配置文件。

raoweijian 回复

我 export path 也 echo 了 我确定 PATH 已经被设置所期望的,但是依旧报错 not found ,我这个问题非常奇怪 ,后来我是换了个 slave。其他都没改 就好了

jenkins 用户和 linux 用户有可能不是一个,可以使用 whoami 看一下。还有 path 变量直接设置,前面不带 export 看看

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册