如何在多行的“脚本"步骤中打破单个命令 [英] How to break a single command inside a `script` step on multiple lines

查看:16
本文介绍了如何在多行的“脚本"步骤中打破单个命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们有一个使用 Azure Pipeline 的项目,依赖于 repo 根目录下的 azure-pipelines.yml 文件.

We have a project using Azure Pipeline, relying on azure-pipelines.yml file at the repo's root.

当实现一个script步骤时,可以在同一个步骤中执行连续的命令,只需将它们写在不同的行上:

When implementing a script step, it is possible to execute successive commands in the same step simply writing them on different lines:

- script: |
  ls -la
  pwd
  echo $VALUE

然而,如果我们有一个很长的命令,我们希望能够在 YAML 文件中将它分成几行,但找不到相应的语法?

Yet, if we have a single command that is very long, we would like to be able to break it on several lines in the YAML file, but cannot find the corresponding syntax?

推荐答案

目前,我们发现在多行上打断单个命令的唯一方法是使用 YAML 折叠样式:p>

At the moment, the only way we found for to break a single command on multiple line is using YAML folded style:

- script: >
    echo
    'hello world'

这就是用 > 替换 |.

注意事项:

  • 不可能在以下几行中引入额外的缩进!例如,尝试对齐给定命令的所有参数会破坏行为.
  • 此样式将用简单的空格替换提供的值中的换行符.这意味着脚本现在只能包含单个命令(也许在行尾添加文字 实际上会在字符串中引入换行符,但感觉是落后的与自动换行的通常方法相比,除非添加了明确的延续).
  • It is not possible to introduce extra indentation on the following lines! For example, trying to align all arguments given to a command would break the behaviour.
  • This style will replace newlines in the provided value with a simple white space. This means the script now can only contain a single command (maybe adding literal at the end of the line would actually introduce a linebreak in the string, but it feels backward compared to the usual approach of automatice linebreak unless an explicit continuation is added).

这篇关于如何在多行的“脚本"步骤中打破单个命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆