从 Fish 运行任何 shell 脚本并导入所有导出的环境变量?

从 Fish 运行任何 shell 脚本并导入所有导出的环境变量?

是否有可能以某种方式导入由 Fish 启动的子进程导出的所有环境变量?

例如,从我的 Fish 会话中,我开始bash ~/.profile,它导出一些变量,并且我想在 Fish 会话中导入这些变量。

(这也是解决我的问题的一个方法其他问题;然而,这会更加通用。例如,这也是解决这个问题

答案1

Linux 有一个/proc/<pid>/environ包含以空值分隔的环境变量的文件,您可以读取它并将其导入到您的fish会话中。

答案2

没有内置的 Unix 标准方法让子进程修改父进程的环境变量,但您可以自己编写脚本。您可以让子进程转储其环境(实际上只是一串格式为“name=value”的字符串),然后以某种方式将其发送给父进程,让父进程遍历列表并为自己导出任何新的或不同的变量(当然,像和 这样的变量除外)$SHELL$PPID

相关内容