首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意外的token `newline'\n/bin/snowsql-1.2.0-linux_x86_64.bash ansible snowsql

意外的token `newline'\n/bin/snowsql-1.2.0-linux_x86_64.bash ansible snowsql
EN

Stack Overflow用户
提问于 2020-07-01 05:24:15
回答 1查看 294关注 0票数 0

正在尝试编写ansible playbook以在计算机上安装snowsql。获取以下错误:

代码语言:javascript
复制
line 1: syntax error near unexpected token `newline'\n/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>'"

尝试手动运行snowsql-1.2.7-linux_x86_64.bash,但出现错误:

代码语言:javascript
复制
ec2-user@ip-xx-xx-xx-xx ~]$ bash snowsql-1.2.7-linux_x86_64.bash 
snowsql-1.2.7-linux_x86_64.bash: line 1: syntax error near unexpected token `newline'
snowsql-1.2.7-linux_x86_64.bash: line 1: `<?xml version="1.0" encoding="UTF-8"?>

然后意识到1.2.7是最近发布的版本。

尝试安装以前的1.2.31.2.5,并能够手动安装它们。但是当我尝试使用ansible安装它们时,如下所示:

代码语言:javascript
复制
name: install installer
  command: bash "{{snowsql_installation_directory}}"/"{{snowsql_version}}".bash
  become: yes

我经常收到如下错误:-

代码语言:javascript
复制
fatal: [127.0.0.1]: FAILED! => {"changed": true, "cmd": ["bash", "/bin/snowsql-1.2.0-linux_x86_64.bash"], "delta": "0:00:00.003428", "end": "2020-06-30 21:15:15.085449", "msg": "non-zero return code", "rc": 2, "start": "2020-06-30 21:15:15.082021", "stderr": "/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: syntax error near unexpected token `newline'\n/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>'", "stderr_lines": ["/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: syntax error near unexpected token `newline'", "/bin/snowsql-1.2.0-linux_x86_64.bash: line 1: `<?xml version=\"1.0\" encoding=\"UTF-8\"?>'"], "stdout": "", "stdout_lines": []}

我已经注意到新的snowsql安装程序需要一个名为destination的用户输入

代码语言:javascript
复制
[ec2-user@ip-xx-xx-xx-xx ~]$ bash snowsql-1.2.0-linux_x86_64.bash       **********************************************************************
 Installing SnowSQL, Snowflake CLI.
**********************************************************************

Specify the directory in which the SnowSQL components will be installed. [~/bin] 
Do you want to add /home/ec2-user/bin to PATH in /home/ec2-user/.bash_profile? [y/N] y 

ansible抛出这个错误是否是因为它没有收到来自用户的任何输入?

1.2.7版本抛出了同样的错误,让我觉得这与二进制代码有关,而不是与代码有关。对snowsql来说是个新手,所以我会很感激我能得到的帮助

EN

回答 1

Stack Overflow用户

发布于 2020-07-01 11:26:50

代码语言:javascript
复制
ec2-user@ip-xx-xx-xx-xx ~]$ bash snowsql-1.2.7-linux_x86_64.bash 
snowsql-1.2.7-linux_x86_64.bash: line 1: syntax error near unexpected token `newline'
snowsql-1.2.7-linux_x86_64.bash: line 1: `<?xml version="1.0" encoding="UTF-8"?>

该错误提示第一行不能被Bash shell解释,这是有意义的,因为它报告了看似XML文档头的内容,而bash脚本文件不应该包含该文档头:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

分辨率将取决于您下载此脚本文件的方式。如果该步骤是自动化的,请检查该步骤,以确保下载的文件完全包含您所期望的内容。您可以查看当前文件以确定它的实际内容,而不是脚本:

代码语言:javascript
复制
~> cat /bin/snowsql-1.2.7-linux_x86_64-unix.bash
<?xml version="1.0" encoding="UTF-8"?>
[ … ]

如果您使用curl从Snowflake's client repository获取脚本,则在获取确切的文件时,应执行以下操作(如果您的环境需要代理设置,请确保添加一个代理设置,否则它将返回一些您不希望的内容):

代码语言:javascript
复制
# Download directly to /bin/snowsql-1.2.7-linux_x86_64.bash
# Uses the fail option to detect if something, such as a proxy, rejected or interfered with the HTTP(S) GET request
~> curl --silent --fail https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/1.2/linux_x86_64/snowsql-1.2.7-linux_x86_64.bash -O /bin/snowsql-1.2.7-linux_x86_64.bash

# If download succeeds, ensure the first line is a shbang line indicating a proper script download
~> head -1 /bin/snowsql-1.2.7-linux_x86_64.bash
#!/bin/bash -e
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62666370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档