2017-10-20 135 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