对于循环gitlab-ci.yml

时间:2019-10-17 13:27:38

标签: bash shell gitlab-ci

我有此代码段。它给了我语法错误:文件意外结束 如果我将其复制到.sh文件中并在终端中运行,它将可以正常工作。

before_script:
    - sbt sbtVersion
    - for file in ./pending/*.sql; do
        file=$(basename "$file")
        export str_opt="$(cat ./pending/"$file"|tr '\n' ' ')"
        mv ./pending/"$file" ./done/
        done

我要去哪里错了?

1 个答案:

答案 0 :(得分:0)

do;

;之后没有do。删除它。

gitlab-ci中yaml的工作方式是将行连接成一条长行,用换行符和行首空格代替一个空格:

for file in ./pending/*.sql; do; file=$(basename "$file"); export str_opt="$(cat ./pending/"$file"|tr '\n' ' ')"; mv ./pending/"$file" ./done/; done

由于;之后的do而无效。

脚本如下:

before_script:
    - sbt sbtVersion
    - for file in ./pending/*.sql; do
             file=$(basename "$file");
             export str_opt="$(cat ./pending/"$file"|tr '\n' ' ')";
             mv ./pending/"$file" ./done/;
        done

应该工作。