1
我有一个返回日期的sql查询。 我从shell脚本中调用此查询,并希望将此值分配给名为datestart的变量(并稍后使用它)。这是我的代码。如果没有datestart赋值,查询就可以正常工作。如何将查询结果分配给shell变量
#!/bin/sh
firstname="-Upgsql"
dbname="statcoll"
portname="-p5438"
datestart=(psql $firstname $portname $dbname<< EOF
SELECT MIN(latestrefdate) FROM (SELECT MAX(referencedate) AS latestrefdate FROM statistics WHERE transactionname IN(SELECT DISTINCT transactionname FROM statistics WHERE platform = 'Smarties')GROUP BY transactionname) as earliest;
EOF
)
echo $datestart
但结果是这样的:
Syntax error: word unexpected (expecting ")").
我不知道我应该在哪里插入右括号。任何暗示是赞赏。
我真的建议'$(..)'在反引号,反引号完全不互相内使用时正常工作,而嵌套表达式中使用'$(都是精品。 )' – scragar
是的,它几乎解决了我的问题。代替实际的日期值,标题的内容被分配给变量。所以我期望这样的'2014-05-23',但得到'分-----(1行)'而不是 –
这是由于列标题和页脚文本。请参阅[本问答](http://dba.stackexchange.com/questions/24215/how-to-turn-off-header-only-in-psql-postgresql) – anubhava