You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Bash会话继承启动它的PowerShell会话的当前工作目录?

解决PowerShell启动MSYS2 Bash时切换到当前工作目录的问题

你需要在Bash的登录会话命令串里,先切换到转换后的PowerShell当前目录,再执行脚本。正确的命令格式如下:

C:\msys64\usr\bin\bash -lc "cd `$(cygpath -u '$PWD') && ./super_duper_script.sh"

关键说明:

  • 使用**$()**做命令替换(这是Bash的标准语法,你之前用的()或{}写法不符合Bash规则),把cygpath -u '$PWD'的输出作为cd的目标路径。
  • 用**&&**连接cd和脚本执行命令,确保只有切换目录成功后才运行脚本。
  • PowerShell里需要用反引号`转义Bash命令里的$,避免PowerShell提前解析$(...)结构。

之前尝试失败的原因:

  1. env --chdir=(cygpath -u '$PWD'):()这种子命令替换是Zsh专属语法,Bash不支持,且命令未包含后续的脚本执行逻辑。
  2. cd {cygpath -u '$PWD'}:{}在Bash中是代码块标记,不是命令替换语法,无法正确解析路径内容。

这种命令行内的动态路径切换方式,完全适配CI环境中不同目录调用脚本的需求,无需修改.bashrc或其他全局配置文件。

内容的提问来源于stack exchange,提问作者Olumide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:28:10