Bash Script,Circle CI,Docker图像 - 意外换行

时间:2018-02-19 10:38:33

标签: bash ubuntu docker circleci

所以我试图弄清楚这个bash脚本是什么,它在我的本地机器(MacOS)上工作得很好:

#!/bin/bash
echo 'Fetching keys.....'
creds=$(credstash getall)
declare -a arrayKeys=($(echo $creds | jq --raw-output '[to_entries[] | .key]' | tr ',' '\n'))

echo 'Setting environment variables.'

for ((i=1; i<(${#arrayKeys[*]} -1); i++))
do
   key=$( printf '%s:' "${arrayKeys[i]}" )
   key=${key%:}
   filter=".${arrayKeys[i]}"
   value=$(jq --raw-output "$filter" <<< "$creds")
   eval "export ${arrayKeys[i]}=${value}"
done

当我跑步时,我得到:

line 15: syntax error near unexpected token `newline'
line 15: `done'

这个文件是在MacOS上创建的,推送到Github并由CircleCI拉到Ubuntu docker镜像中,我试过的东西:

在执行之前使用TR:

tr -d '\015' < creds.sh > creds2.sh

cat -v creds.sh // to check for dodgy characters

我仍然遇到同样的错误,我昏暗吗?

编辑我也在Dockerfile的顶部有这个,不确定它是否相关,我看不出它有影响但我想分享:

# Replace shell with bash so we can source files
RUN rm /bin/sh && ln -s /bin/bash /bin/sh

0 个答案:

没有答案