我正在尝试从本地计算机在远程服务器上运行 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