如何在WSL2环境的VSCode中配置oh-my-bash并加载用户配置文件
我来帮你梳理这个问题的解决思路,以及你遇到的source: not found报错的核心原因:
问题背景
你想要在WSL2环境的VS Code Remote中使用oh-my-bash这类工具,但VS Code Remote在WSL启动时默认不会运行Shell启动脚本(比如~/.profile),官方推荐通过~/.vscode-server/server-env-setup(Insiders版本用~/.vscode-server-insiders/server-env-setup)脚本来自定义环境。
解决source: not found报错的关键
你之前在脚本里写的#!/bin/bash source ~/.profile是错误写法——shebang行(#!/bin/bash)只能指定脚本的解释器,不能直接跟执行命令。正确的写法需要把shebang和source命令分成两行:
#!/bin/bash source ~/.profile
为什么会报错?如果shebang写得不对,脚本可能会被sh而非bash执行,而sh中没有source命令(或者需要用.代替);指定#!/bin/bash后,脚本会用bash来执行,source命令就能正常工作了。
另外你尝试的bash ~/.profile之所以没效果,是因为这会启动一个新的bash子进程加载~/.profile,子进程退出后父进程的环境变量不会被继承,所以VS Code Remote的环境里还是看不到配置。而source ~/.profile是在当前进程中加载配置,才能让环境变量生效。
后续说明
你提到已经解决了配置文件加载的问题,关于powerline-go在WSL2 VS Code中无法正常工作的问题已转移至新提问,本问题可以关闭了。
内容的提问来源于stack exchange,提问作者carl

