在looper(构建在jenkins之上),我必须以yml格式定义shell脚本来执行作业。
我是YAML的初学者。所有其他命令,如echo,wget都有效。检查文件夹是否存在然后删除dir,当我尝试执行looper作业时抛出错误。
我在yaml文件中定义了流程,在一个流程中,我给出了以下行来检查该文件夹是否存在然后将其删除
- [[ -d "$WORKSPACE/codometer-runner" ]] && rm -r $WORKSPACE/codometer-runner
它给我以下错误:
预期字母或数字字符,但找到& 10:06:00在'读者',第34行,第47栏: 10:06:00 ...... WORKSPACE / codometer-runner" ]]&& rm -r $ WORKSPACE / codometer-runner 10:06:00 ^
有些人可以告诉我如何验证YAML中是否存在文件夹?
答案 0 :(得分:1)
在YAML中,[
启动流程序列。因此,您不能以[
开头的普通标量。您有几种选择:
使用块标量:
- >-
[[ -d "$WORKSPACE/codometer-runner" ]] && rm -r $WORKSPACE/codometer-runner
(>
启动折叠的块标量,后续-
告诉YAML不附加尾随换行符。
单引用标量:
- '[[ -d "$WORKSPACE/codometer-runner" ]] && rm -r $WORKSPACE/codometer-runner'
双引号:
- "[[ -d \"$WORKSPACE/codometer-runner\" ]] && rm -r $WORKSPACE/codometer-runner"
由于标量包含双引号,因此您需要将它们转义。