GitHub Actions中bash -l {0}的-l和{0}参数作用是什么?
GitHub Actions 中
bash -l {0} 参数含义说明 {0} 占位符作用
这是GitHub Actions Shell配置模板的固定占位符:
GitHub执行run步骤时,会先将你写的命令内容写入一个临时生成的脚本文件,再把这个临时脚本的绝对路径替换到{0}的位置后执行最终命令。
如果Shell配置中没有显式写{0},GitHub会默认把临时脚本路径拼接到Shell命令的末尾,所以shell: bash等价于shell: bash {0},这也是CML仅用shell: bash就能正常运行的原因。
-l 参数作用
-l是Bash原生的可选参数,是--login的缩写,作用是让Bash以登录Shell模式启动:
- 登录模式启动的Bash会主动加载用户全局环境配置文件(包括
~/.bash_profile、~/.bashrc、~/.profile等) - 普通非登录模式的Bash默认只会加载
BASH_ENV指定的配置,不会读取用户目录下的全局配置文件。
为什么setup-miniconda需要用bash -l {0}
setup-miniconda Action安装完成后,会将conda的初始化脚本写入当前用户的Shell配置文件中,只有以登录模式启动的Shell才能正确加载conda相关的环境变量,让conda命令、conda activate等操作可以正常调用。如果不添加-l参数,run步骤中直接调用conda会提示命令不存在,也无法切换conda虚拟环境。
内容的提问来源于stack exchange,提问作者Hongbo Miao
相关产品推荐
相关产品推荐

