VS Code 远程无法在 SSH 中读取 .bash_profile 文件。

3

我使用Python编写了一些命令,并将其运行成bash脚本。这些命令大多是Python脚本。

#!/bin/bash
./xmlchange JOB_WALLCLOCK_TIME=30:00:00
./xmlchange NTASKS=40
./case.setup
cp ../something ./something  
./xmlchange something
./case.build
./case.submit

我这样从Python中调用bash脚本:

os.chmod("./run.sh", stat.S_IRWXU )
subprocess.call("./run.sh")

然而,最后一个命令(./case.submit)的行为总是不同。该命令用于将SLURM作业提交到队列中。如果我直接从Python运行此bash脚本,则由于内存问题,作业几乎立即崩溃。
但是,如果我从终端运行最后一个命令,则作业可以正常运行。
因此,我怀疑VS Code会话与默认登录会话的环境是否相同。因为至少“终端”选项卡界面不同,它不会加载.bash_profile文件。
有人有这方面的经验吗?

.bash_profile 只在登录 shell(如 ssh)中执行,而终端是交互式的非登录 shell,并执行 .bashrc。Python subprocess.call a bash alias 可能会对你有所帮助。 - Neil
看起来我可以这样做:例如,要启用将bash作为登录shell运行(即运行.bash_profile),请传入-l参数(带有双引号):https://code.visualstudio.com/docs/editor/integrated-terminal - Chang
1个回答

4

删除您的/home/username/.vscode-server

cd ~/
rm -rf .vscode-server

重新启动vscode,然后您可以使用您创建的.bash_profile文件。


这个技巧很有效! - soulmachine
有一天,在通过VSCode进行SSH连接时,我发现目标计算机上的.profile文件完全被忽略了。后来,我尝试了一种方法,重新连接VSCode后,我看到它重新创建了一个全新的.vscode-server文件夹,但这次我在.profile中设置的路径似乎起作用了。我成功地使用这些路径连接了几次。然而,当我尝试使用Ctrl-D退出SSH时,再次连接时,被忽略的.profile问题又出现了,所以每次登出时似乎都需要删除.vscode-server文件夹。 - ildarmgt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接