使用 ssh 获取数据的 Linux 变量给出警告 : here-document at line 95 delimited by end-of-file (wanted `SSHSQLTEXT' )

标签 linux bash variables eof

我需要从 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')

最佳答案

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

SSHSQLTEXT
)

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

关于使用 ssh 获取数据的 Linux 变量给出警告 : here-document at line 95 delimited by end-of-file (wanted `SSHSQLTEXT' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17489297/

相关文章:

linux - bash命令的Tell方法

bash - 从 Windows PowerShell 运行 bash 脚本

在另一个实例中覆盖实例的 Java 静态变量?

ios - Swift 找不到带有可变参数的 objc 函数

php - 将 MYSQL DATE 格式转换为 php 的 STRING 格式

linux - printk 参数和 syslog.h 设施名称

linux - ElasticBeanstalk - 将 ec2-user 添加到另一个组

xml - 如何使用linux csplit 分割海量XML文件?

c++ - gdb 导入的崩溃/退出时间的进程转储?

bash - 如何使用 Bash 插入 SQLite 数据库?