是哪个 Bash 启动文件设置了那个代理?
先检查 login_shell,再区分被选中的配置文件与继承来的父进程环境。
shopt login_shell| 启动方式 | 启动输入 |
|---|---|
| 登录 | /etc/profile,然后是 ~/.bash_profile、~/.bash_login 或 ~/.profile 中第一个存在且可读的文件;它可能会加载 ~/.bashrc |
| 交互式非登录 | ~/.bashrc;Debian 系的构建还有 /etc/bash.bashrc |
| 非交互式 | 在适用时使用 BASH_ENV |
查看该路径上的赋值和加载的脚本,找到真正的代理变量。因此不同的终端模式可能选择不同的来源。
bash --noprofile --norc 会跳过启动文件,但仍继承父进程环境。删除文件中的赋值,并不会清除终端或 shell 已经持有的值。
修正拥有该值的来源,并从预期的父环境启动。末尾再加一个 unset 可能只是掩盖来源,并没有修复另一条启动路径。