我试图通过Azure DevOps中的bash脚本任务运行bash脚本。 当我的bash脚本还很小时,我总是使用内联类型并在那里运行代码。当我的脚本超过5000个字符时,我被迫使用路径类型。但是在使用路径类型时出现了一些错误:
经过一些调试后,试图找出托管代理在欺骗我。 如果我将相同的5000个字符的脚本与内联类型和路径类型一起使用,则它可以与内联类型一起使用,但不适用于路径类型,这使我认为这与设置有关,而与代码本身无关。
即使我在“脚本路径”参数中给出了路径after all it's a path type
,它也给了我同样的错误。有没有我忘记设置的设置。还是仅将复制内联脚本粘贴到文件中就做错了吗?
[编辑] 正在运行的脚本为:https://paste.ee/p/XGY7Z
答案 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