【问题标题】:Linux variable to get data using ssh gives warning: here-document at line 95 delimited by end-of-file (wanted `SSHSQLTEXT')使用 ssh 获取数据的 Linux 变量给出警告:第 95 行的此处文档由文件结尾分隔(需要 `SSHSQLTEXT')
【发布时间】:2013-07-05 12:47:40
【问题描述】:

我需要从 Vertica DB 中获取值并将其分配给 shell 中的变量以供进一步使用。 Vertica DB 位于单独的 linux 服务器中。我正在使用下面的脚本来获取数据。它也可以工作并将值分配给 linux 变量。但我收到警告。从 'SSHSQLTEXT' 中删除单引号会使代码块不起作用。

代码:

execute_command="SELECT SCHEMA_ID FROM V_CATALOG.SCHEMATA WHERE SCHEMA_NAME = '$v_schema_name'; "

retVal=$(ssh $o_pem_key_string $v_server_user@$v_server_name ssh_v_db_name=$v_db_name ssh_v_schema_name=$v_schema_name ssh_v_schema_pwd=$v_schema_pwd ssh_execute_command=\""$execute_command"\" \'bash -s\' <<'SSHSQLTEXT'
/opt/vertica/bin/vsql -d $ssh_v_db_name -U $ssh_v_schema_name -w $ssh_v_schema_pwd -c "$ssh_execute_command"
SSHSQLTEXT)
has_log_table_val=($retVal)
export v_schema_id=${has_log_table_val[2]}
echo $v_schema_id

警告信息:

./testsample.sh: line 97: warning: here-document at line 95 delimited by end-of-file (wanted `SSHSQLTEXT')

【问题讨论】:

标签: linux bash variables eof


【解决方案1】:

SSHSQLTEXT)这行需要换成两行,如:

SSHSQLTEXT
)

heredoc 名称需要与末尾的整行匹配。

【讨论】:

    猜你喜欢
    • 2015-01-27
    • 2019-08-13
    • 2013-08-08
    • 2020-12-24
    • 2016-04-04
    • 2012-09-12
    • 2018-05-09
    • 2016-07-14
    • 2012-05-28
    相关资源
    最近更新 更多