【发布时间】:2021-08-07 03:47:41
【问题描述】:
在我写了几个命令后,我正在使用 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 仅对像 ssh 这样的登录 shell 执行,而终端是交互式的、非登录的并执行 .bashrc。 Python subprocess.call a bash alias 可能会对您有所帮助。
-
看来我可以:例如,要将 bash 作为登录 shell(运行 .bash_profile)启用,请传入 -l 参数(带双引号):code.visualstudio.com/docs/editor/integrated-terminal
标签: python bash ssh hpc vscode-remote