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

如何在Git-Bash中执行初始化脚本后保持Shell持续运行?

如何在Git-Bash中执行初始化脚本后保持Shell持续运行?

最近我遇到个小难题——想通过快捷方式启动Git-Bash后,自动执行我的初始化脚本start.sh,同时让shell保持运行不退出。之前我在别的社区问过这个问题,虽然讨论得还不错,但因为偏题被关闭了,觉得这个需求挺实用的,所以整理出来分享给大家。

一开始我参考了普通bash下保持shell运行的方案,但发现Git-Bash作为一个包装程序,行为和原生bash不太一样,试了好几种方法都没成功。比如我试过用嵌套启动的命令:

/c/Progra~1/Git/git-bash.exe -c 'exec /c/Progra~1/Git/git-bash.exe --cd=/c/DGSante/Git/dg-sante-new-cpms/ --init-file /c/DGSante/Git/dg-sante-new-cpms/start.sh -i'

结果虽然能在指定目录启动第二个Git-Bash并执行脚本,但这个新启动的shell会自动退出,根本留不住。

后来在大家的帮助下终于找到了解决办法——放弃使用Git-Bash的包装器,直接调用Windows版的bash程序。最终能用的快捷方式命令是:

"C:\Program Files\Git\bin\bash.exe" --cd=C:\DGSante\Git\dg-sante-new-cpms\ --init-file C:\DGSante\Git\dg-sante-new-cpms\start.sh

这个命令里,--cd用来指定启动后默认的工作目录,--init-file指定要自动执行的初始化脚本,直接用bash.exe启动的话,执行完脚本后会自动保持交互式shell的状态,完全符合需求。

顺便说下我的start.sh脚本内容,主要是定义了一些常用的别名,方便日常开发:

#!/bin/bash

# 编辑器别名
alias n='"C:\\Program Files\\Notepad++\\notepad++.exe"'

# 构建命令别名
alias gp='/c/DGSante/Git/dg-sante-new-cpms/gp.sh'

# Docker相关命令别名
alias dd='docker-compose down -v'
alias db='docker-compose build'
alias du='docker-compose up'

备注:内容来源于stack exchange,提问作者DOBRESCU_Mihai.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:42:58