2017-10-20 138 views
-2

在looper(建立在jenkins之上)中,我不得不以yml格式定义shell脚本来执行作业。检查dir是否存在,然后删除不在yml文件中的语法

我是YAML的初学者。尽管所有其他命令都像echo,wget一样工作。检查一个文件夹是否存在,然后删除dir在我尝试执行循环作业时抛出一个错误。

我在YAML文件中定义的流程,并在一个流,我给下面一行的检查,如果该文件夹存在,那么删除它

- [[ -d "$WORKSPACE/codometer-runner" ]] && rm -r $WORKSPACE/codometer-runner 

这是给我下面的错误:

预期字母或数字字符,但发现& 10:06:00在'reader',第34行,第47列: 10:06:00 ... WORKSPACE/codometer-runner“]] & & rm -r $ WORKSPACE/codometer-runner 10:06:00^

可以请一些人告诉我如何确认文件夹是否存在于YAML中?

+0

YAML是通用标记语言。你应该改述你的问题。 –

回答

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" 
    

    由于标包含双引号,你需要躲避他们的。

+0

找到了答案..谢谢。 – user3773712