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

Ansible如何在Windows 2019主机通过Git-bash执行命令并解决任务挂起问题

问题诱因
  • git-bash.exe是带GUI界面的交互式终端程序,默认启动后会常驻进程等待用户输入交互,不会执行完传入的命令后主动退出,导致Ansible的win_command模块持续等待进程返回结果,最终触发挂起无响应。
  • 直接将命令作为git-bash.exe的启动参数的调用方式不符合Git Bash的非交互式执行规范,程序无法识别传入的执行指令,也无法正常结束进程。
修复方案
  1. 替换调用程序:将git-bash.exe替换为同Git安装目录下的bin\bash.exe,这是无GUI的命令行版本shell,支持非交互式执行脚本/命令,执行完成后会主动退出并返回执行结果,适配Ansible的调用逻辑。
  2. 修正参数格式:使用bash的-c参数传递要执行的命令串,符合Unix shell的标准调用规范。

修正后的对应任务代码如下:

- name: "Execute a command in the git-bash shell"
  win_command: '"C:\Program Files\Git\bin\bash.exe" -c "ls {{ yesterdays_files }}"'
  when: yester_st.stat.exists

如果需要执行多条命令,直接在-c后的引号内用分号分隔命令即可,示例如下:

# 执行多条命令示例:先打印工作目录,再列出目标路径文件
win_command: '"C:\Program Files\Git\bin\bash.exe" -c "pwd; ls {{ yesterdays_files }}"'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:45:00