首页 > 解决方案 > azure devops 管道脚本给出 bash 错误

问题描述

Azure devops 管道脚本给出错误 Bash exited with code '127'。

YAML 脚本不适用于 devops 管道。

    trigger:
      - master

   pool:
      vmImage: 'Ubuntu-16.04'

   steps:
      - task: NodeTool@0
   inputs:
       versionSpec: '10.x'
       displayName: 'Install Node.js'

   - script: |
        start
        displayName: 'npm install and build'

package.json 有脚本“开始”。运行此脚本后,它显示错误 Bash exited with code '127'。

标签: azureazure-devopsazure-pipelines

解决方案


由于多种原因,您的 YAML 无效。我首先建议您不要缩进根级别(语义上没有区别)。如果你这样做,你会更容易看到第一个键 ( trigger) 比第二个键 ( pool) 缩进更多:

 trigger:
   - master

pool:
   vmImage: 'Ubuntu-16.04'

steps:
   - task: NodeTool@0

然后在文件的末尾,您有序列条目指示符(-与键的值处于同一级别,inputs但该键已经具有作为值的映射(具有键versionSpec和的那个displayName),并且您不能在 YAML 中拥有一个具有序列和映射元素。虽然如何解决这个问题并不明显。

不是致命的,但无论如何都是一个建议:您应该使用相同数量的空格缩进序列。作为值的序列trigger缩进了 4 个位置的条目,其中序列条目指示符的偏移量为 2。对于stepsthis 的值分别为 5。3. 保持一致是值得的,如果你很难做到这一点,有可用的工具(可安装的和在线的)可以为你做到这一点。


推荐阅读