【问题标题】:entrypoint.sh - line 9: syntax error: unexpected "("entrypoint.sh - 第 9 行:语法错误:意外“(”
【发布时间】:2020-02-27 00:55:04
【问题描述】:

我正在尝试从 docker 运行以下脚本(基于 alpine 映像)

#!/bin/sh

echo "test"

export USERNAME="AQICAHj456mvH8iSJofL46Xtr7KP6Ng3Vn5k6BpZbkAAAAZTBjBgkqhkiG9w0BBwagVjBUAgEAME8GCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMwCm8C+wSLRm/+sSuAgEQgCJHCFbrIwCQuH0x2iGp13j9SuxMtfrcE6c4SmrHRVkkX24f"
export AWS_REGION="us-east-1"
echo "$AWS_REGION"

decrypt=$(aws kms decrypt --ciphertext-blob fileb://<(echo "$USERNAME" | base64 -d))
export $key="$(echo $decrypt | jq .Plaintext -r | base64 -d)"

exec "$@"

我得到以下输出

test
us-east-1
/bin/entrypoint.sh: line 9: syntax error: unexpected "("

我不确定如何解决此语法错误。任何帮助表示赞赏。

【问题讨论】:

  • 使用#!/bin/bash
  • 当我使用#!/bin/bash 时,我收到此错误[FATAL tini (6)] exec /bin/entrypoint.sh failed: No such file or directory。它无法将其识别为 shell 脚本
  • 你可能有 CRLF 行尾,用dos2unix 修复它。
  • 我在 Mac OS X 上运行这个

标签: bash docker entry-point


【解决方案1】:

&lt;(...)bash 扩展,在/bin/sh 中不可用。你的脚本不需要它,你应该在那里使用$(...)

decrypt=$(aws kms decrypt --ciphertext-blob fileb://$(echo "$USERNAME" | base64 -d))

【讨论】:

  • 现在它试图做点什么。我收到一个错误'utf8' codec can't decode byte 0xf8 in position 12: invalid start byte
  • 这是来自 kms decrypt 的 Python 错误,与 bash 无关。谷歌一下。
猜你喜欢
  • 1970-01-01
  • 2014-09-10
  • 1970-01-01
  • 2016-03-11
  • 2011-06-24
  • 2020-11-07
  • 2015-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多