Azure DevOps bash脚本内联vs路径输出不相同

时间:2019-01-24 13:43:01

标签: bash azure azure-devops

我试图通过Azure DevOps中的bash脚本任务运行bash脚本。 当我的bash脚本还很小时,我总是使用内联类型并在那里运行代码。当我的脚本超过5000个字符时,我被迫使用路径类型。但是在使用路径类型时出现了一些错误: enter image description here

经过一些调试后,试图找出托管代理在欺骗我。 如果我将相同的5000个字符的脚本与内联类型和路径类型一起使用,则它可以与内联类型一起使用,但不适用于路径类型,这使我认为这与设置有关,而与代码本身无关。

这是我的路径类型设置 enter image description here

即使我在“脚本路径”参数中给出了路径after all it's a path type,它也给了我同样的错误。有没有我忘记设置的设置。还是仅将复制内联脚本粘贴到文件中就做错了吗?

[编辑] 正在运行的脚本为:https://paste.ee/p/XGY7Z

1 个答案:

答案 0 :(得分:4)

看起来像换行问题:

/home/vsts/work/1/s/CheckAlerts.sh: line 6: declare: `arrReportsFailed
': not a valid identifier

请注意错误消息中间的换行符。同样:

/home/vsts/work/1/s/CheckAlerts.sh: line 13: syntax error near unexpected token `$'do\r''

请注意\r

bash无法应付Windows样式(CRLF)的行尾。更改您的文件以Unix样式(LF)行结尾。使用.gitattributes强制执行此操作:

*.sh text eol=lf