如何在每个命令之前更新 env (字面意思)

如何在每个命令之前更新 env (字面意思)

$http_proxy我在工作中使用许多不同的 VPN,并经常使用为$https_proxy我设置的脚本在它们之间进行切换。问题是当我打开终端时,这些变量不会在该终端的环境中更新。

有没有办法在终端中的每个命令(包括lscurlsudo -e apt update等)之前更新进程和子进程的环境(或者至少运行一些脚本,但这很棘手*)?最好以一种适用于bashzshtmux及其所有子项的方式。

*)在运行任何命令之前运行脚本是很棘手的,因为它可以为自己代码的每个关键字一遍又一遍地触发自己(我已经像刺客大师一样杀死了我的机器 - 即使我,凶手,也不知道是什么杀死了受害者)

到目前为止,我想到的是~/.proxy在运行 VPN 命令以在环境之间传递代理配置时创建(并在退出时删除)一个文件,但我仍然需要读取它并更新每个文件中的变量。

相关内容