GitHub Actions中‘run:’与‘run: |’的区别是什么?
GitHub Actions中
run:单行与多行run: |的区别 1. 命令执行方式
- 单行
run::仅支持编写单条命令,该命令会在单个shell进程中执行。适合简短、无需拆分的命令,比如run: echo "Hello World"。 - 多行
run: |:既可以编写多条独立命令,也可以将单条长命令拆分为多行显示:- 多条命令时,每行对应一条命令,按顺序在同一个shell进程中执行,前序命令的环境变量会被后续命令继承。
- 拆分长命令时(如你示例中的
docker build),通过行尾的反斜杠\将一条命令拆分为多行,实际仍作为单条命令执行,目的是提升长命令的可读性。
2. 可读性与维护性
- 单行形式:写法简洁,但遇到带多个参数的长命令时,整行内容冗长,难以阅读和修改。
- 多行形式:无论是多条命令还是拆分的长命令,都能以清晰的格式展示,便于后续维护和调整,比如你示例中把每个
--build-arg参数单独占一行,一眼就能看清所有构建参数。
3. 错误处理
- 两种形式默认逻辑一致:只要执行的命令返回非0状态码,整个Step就会标记为失败。
- 多行形式下,如果需要忽略某条命令的错误,可以通过
command || true或者临时调整shell错误处理(如set +e)来实现,单行形式则无此灵活度(因为只能写一条命令)。
内容的提问来源于stack exchange,提问作者Jimmy Zhao
相关产品推荐
相关产品推荐

