【发布时间】:2012-08-01 20:54:33
【问题描述】:
在 bash 脚本中执行以下 psql 语句时出错:
execlog "psql -h $HOST -p $PORT -U $USER -d $DB -q -c 'CREATE EXTENSION hstore;'"
引发的错误是:
错误:在“'CREATE”处或附近未终止的带引号的字符串 第 1 行:'创建 ^
因此,单终止引号无法正常识别。 当使用转义双引号而不是单引号时 (...\"CREATE EXTENSION hstore;\") 我得到了同样的错误。 直接从命令行执行命令时,一切正常。
有人知道出了什么问题吗?
提供一些额外的信息:
操作系统:Ubuntu 11.10,Postgresql 版本:9.1
提前致谢, 理查德
已解决: execlog 函数产生错误。现在我打电话给
log "exec psql -h $HOST -p $PORT -U $USER -d $DB -q -c 'CREATE EXTENSION hstore;'"
效果很好!
感谢您的帮助!
【问题讨论】:
-
对于 bash 调试
set -x,这会将正在执行的命令写入 stderr。然后你可以看到传递给 psql 的内容。
标签: bash postgresql