【问题标题】:zsh: parse error near `\n' when Adding AWS keys as environment variableszsh:将 AWS 密钥添加为环境变量时,在“\n”附近解析错误
【发布时间】:2014-04-12 07:00:23
【问题描述】:

我有一个在 Heroku 上托管的 Rails 应用程序,并在 Amazon S3 上托管图像。我正在尝试将我的亚马逊凭证添加到我的应用程序中:

heroku config:add aws_access_key:<your access key> aws_secret_key:<your secret key>

我不断收到错误:

zsh: parse error near `\n'

我不知道问题是什么。

【问题讨论】:

  • 如何切换回 bash?
  • 我们应该如何知道您正在使用的操作系统?
  • 如果您使用的是 Linux/Unix,请使用 chsh -s &lt;path to bash&gt;,通常类似于 /bin/bash @Steve_D

标签: ruby-on-rails heroku amazon-web-services amazon-s3 zsh


【解决方案1】:

您的 Amazon 访问密钥或 ZSH 正在解释的密钥中可能有一些“特殊”字符。您通常需要“转义”这些字符,但在这种情况下,您应该能够将字符串放在引号中。

试试这个(注意值周围的引号)

heroku config:add aws_access_key="<your access key>" aws_secret_key="<your secret key>"

【讨论】:

  • 有没有办法在运行命令时覆盖 zsh 设置?我试过 -f 但没有用。
【解决方案2】:

您的密钥很可能包含一些对 zsh 具有特殊含义的字符。

在您的键周围使用单引号 ('):

heroku config:add aws_access_key='<your access key>' aws_secret_key='<your secret key>'

如果您的密钥中有任何单引号,请改写'\''。例如,而不是

aws_access_key=stevie's key

aws_access_key='stevie'\''s key'

说明:一对单引号之间的任何内容都完全按照其编写方式进行,不会有参数或命令替换或转义码。当第二个' 结束引用时,您要编写的任何' 都必须在一对单引号之外以另一种方式引用,\'"'"

【讨论】:

  • 所以我用上面的精确格式用单引号运行命令,我知道得到以下错误....... 用法:heroku config:set KEY1=VALUE1 [KEY2=VALUE2 。 ..]!必须指定 KEY 和 VALUE 才能设置。我的键没有单引号。
  • 好的,从我可以看到的错误消息中,键值对使用= 进行分配,而不是:,就像您的问题一样。我相应地修改了答案。
  • 谢谢它的工作,看起来如果你使用引号你不需要在键周围的 。当我在键周围有 但没有使用引号时它不起作用。
  • &lt;&gt; 通常用于表示帮助文本中的非可选参数。它们通常不是语法的一部分,因此与它们之间的文本一起被实际值替换。
【解决方案3】:

我在 GitHub 中尝试提交时遇到了同样的错误。原来, 是保留的,所以我当然不能在其中命名任何内容。 为在 GitHub 中遇到相同问题的人发布此内容以用于 SEO。

【讨论】:

  • 键中没有 - 那是占位符文本。
【解决方案4】:

我有同样的错误,并解决了。因为我是这样打字的

$ heroku config:set AWS_SECRET_KEY=<A2D3F4H5A6D7HJ8KHF9>

然后得到错误。 像这样改变:

$ heroku config:set AWS_SECRET_KEY=A2D3F4H5A6D7HJ8KHF9

成功

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-05
    • 2018-10-19
    • 2019-04-29
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多