在 shell 脚本内的远程服务器上运行 timesten 查询

在 shell 脚本内的远程服务器上运行 timesten 查询

我正在尝试从本地计算机在远程服务器上运行 timesten sql 查询。查询位于脚本内,我可以连接到数据库,但问题出在查询字段上。

这是我的脚本 runttquery.sh

#!/bin/bash
cmd=$1
ssh dba@rhost << "EOF"
ttIsql "dsn=rhostdsn";
select * from table1 where id='$cmd';
EOF

当我通过传递参数“testid”来运行上面的脚本时, ./runttquery.sh testid

sql 查询中的 $cmd 没有被我传递的“testid”参数替换,并且我从远程服务器得到 0 个结果。

我只需要将 sql 查询中的 id 值替换为传递给脚本的参数。

答案1

我错误地替换了变量 $cmd,我删除了 EOF(heredoc limitstring) 周围的引号,并在 $cmd 周围添加了 {} 。下面的内容现在工作得很好。

#!/bin/bash
cmd=$1
ssh dba@rhost << EOF
ttIsql "dsn=rhostdsn";
select * from table1 where id='${cmd}';
EOF

相关内容