.readthedocs.yaml中cd命令返回0却未切换目录的原因咨询
问题原因与解答
为什么cd命令返回码为0但未切换目录?
这是因为Read the Docs构建系统中,commands列表里的每一条命令都是在独立的子Shell进程中执行的。
比如假设你的配置片段是:
commands: - cd docs - make html
cd docs会在单独的Shell进程里执行——这个进程内确实成功切换到了docs目录(所以返回码为0),但进程执行完毕就会退出,后续的make html会在新的Shell中启动,回到项目初始工作目录,因此看起来目录切换没生效。
是否属于预期行为?
是的,这是Read the Docs的设计逻辑:让每个命令独立运行,避免不同命令之间的环境变更(比如目录、环境变量)互相干扰,保证构建环境的一致性。
解决方法
如果需要在同一个目录下执行多条命令,把它们合并成一条,用&&或分号连接,确保在同一个Shell进程中运行:
commands: - cd docs && make html
内容的提问来源于stack exchange,提问作者Miro Iliaš
相关产品推荐
相关产品推荐

