linux非交互命令登录,Linux登录shell和非登录(交互式shell)环境变量配置

在Jenkins执行shell脚本时遇到command not found问题,原因是非登录交互式shell不加载/etc/profile。交互式登录shell会读取多个启动文件,而非登录shell主要执行~/.bashrc。为确保环境变量生效,应将它们定义在/etc/profile.d/下的.sh文件。了解登录与非登录shell的区别,以及各自加载的配置文件,有助于正确设置环境变量。
摘要由CSDN通过智能技术生成

56fbec35c2a743ba086de7f15ce3b4f1.gif

使用Jenkins执行shell脚本的时候, 碰到command not found. 比如java mvn, 这些环境变量配置在/etc/profile

中, 但jenkins执行的时候并没有加载.

这是因为jenkins执行的shell是非登录交互式shell, 并不会加载/etc/profile.

交互式shell会加载.bashrc, 进而会加载/etc/bashrc, 而/etc/bashrc会加载/etc/profile.d/*.sh.

*因此, 自定义的变量应该定义在/etc/profile.d/.sh

1.登录shell

所谓登录shell,指的是当用户登录系统时所取的那个shell,登录shell属于交互式shell。

登录shell将查找4个不同的启动文件来处理其中的命令。 bash shell处理文件的顺序如下:

1:/etc/profile

2:/etc/profile.d等待配置文件

3:$HOME/.bash_profile 会加载$HOME/.bashrc和/etc/bashrc

4:$HOME/.bash_login

5:$HOME/.profile

2. 交互式非登录shell

如果启动了一个bash shell而没有登入系统(如在CLI提示符中键入bash),

则启动了一个交互式非登录shell.

$HOME/.bashrc

交互式非登录shell执行~/.bashrc文件中的命令.在每次执行shell脚本时,都

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值