LoginSignup
0
1

buildspec.yamlでfor文を書く方法

Posted at

はじめに

buildspec.yamlにfor文を記述しCodeBuildで実行したところ、
エラーになって滅茶苦茶ハマったので忘れない為に。

想定読者

CodeBuildでfor文使いたい人
CodeBuildでfor文使ったらエラーになった人

書き方

例として、下記の処理を行うコードを書きます。

  1. lsコマンドの結果を変数に入れる
  2. 変数をfor文で処理する
commands:
  - RESULT=`ls`

  - for v in "${RESULT[@]}"; do
      echo $v;
    done

ハマっていた時のコード

ハマってエラーが出ていた時のコードは以下でした。

commands:
  - RESULT=`ls`

  - for v in "${RESULT[@]}"
  - do
  -   echo $v
  - done

全行にハイフンを書いていました。
この場合、下記の様なエラーが出ます。
image.png

for文やif文など、複数行のコードブロックを書く場合は、
ブロックの先頭にのみハイフンをつけて1行として見なされなければならないっぽい。
(CODEBUILD_LAST_EXITって何?)

おわりに

シェル自体の書き方が悪いのか?と思って色々無駄に検証してしまった。
解決の糸口として、exit statusも出ていたけどそもそもexit stautsの対応表が見つからなかった。どうすればええねん。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1