Visual Studio Code (VSCode) 如何知道 ~/.config/fish/config.fish 中设置的环境变量?

tms*_*ick 1 macos environment-variables visual-studio-code

环境:

  • macOS Catalina
  • 视觉工作室代码
  • 鱼壳

我使用 fish 作为默认 shell,并且几乎每个环境变量 include$PATH都设置在~/.config/fish/config.fish(~/.bash_profile在 bash 中) 内。当我使用 Visual Studio Code 时,它​​知道设置的环境变量,~/.config/fish/config.fish尽管它的父进程是/sbin/launchd,而不是fish。这是怎么发生的?

小智 5

默认外壳

chsh -s /usr/local/bin/fish命令使 Fish Shell 成为您的默认登录 (1) shell(如在 MacOS自述文件上安装 Fish shell 中所述)。除非另有说明,Fish 将用作所有内容的默认 shell。

它怎么知道 $PATH

每次启动新的 Fish Shell 实例时,它都会查看~/.config/fish/config.fish文件以进行配置和调整;在里面你可能$PATH设置了变量,它会被输入到$PATH变量中。

视觉工作室代码

使用的 shell 在 Linux 和 macOS 上默认为 $SHELL,在 Windows 10 上默认为 PowerShell,在早期版本的 Windows 上使用 cmd.exe。这些可以通过在用户设置中设置 terminal.integrated.shell.* 手动覆盖。可以使用 terminal.integrated.shellArgs.* 用户设置将参数传递给终端外壳阅读有关配置外壳的更多信息

在 OSX 中,它是terminal.integrated.shell.osx通过默认(空)或用户指定的 shell 调用 $SHELL 的属性

概述

login(1) --> 设置$SHELL = /usr/local/bin/fish--> Visual Studio Code 获取$SHELL--> 启动一个新的鱼壳实例 --> 鱼壳加载~/.config/fish/config.fish--> 设置$PATH和其他配置