繁体   English   中英

sqlite3命令行返回码不一致

[英]sqlite3 command line inconsistent return codes

在sqlite3命令行程序中,我无法在Internet上的任何地方找到文档以获取返回码。

尝试以编程方式使用它时,我发现一些错误会打印到屏幕上,但仍然返回零。 例如,返回错误消息“错误:SQL不完整”的任何内容都不会导致命令行应用程序返回非零值:

$ echo 'foo' > /tmp/foo.sql
$ sqlite3 /tmp/foo.db < /tmp/foo.sql
Error: incomplete SQL: foo
$ echo $?
0

这是错误吗? 我会这样认为,尤其是考虑到以下等效行:

$ sqlite3 /tmp/foo.db "foo"
-- Loading resources from /home/yomomma/.sqliterc

Error: near "foo": syntax error
$ echo $?
1

谁能指出我有关sqlite3的预期返回值的文档?

(问题不是我的.sqliterc,在此处完整复制:

.mode column
.headers on
.nullvalue '<NULL!>'

编辑:

$ sqlite3 --version
-- Loading resources from /home/yomomma/.sqliterc

3.7.13 2012-06-11 02:05:22 f5b5a13f7394dc143aa136f1d4faba6839eaa6dc

这可能是SQLite(v3.8.6)中的错误。 我正在看shell.c:3644

if( nSql ){
  if( !_all_whitespace(zSql) ){
    fprintf(stderr, "Error: incomplete SQL: %s\n", zSql);
  }
  free(zSql);
}
free(zLine);
return errCnt>0;

我认为应该有一个errCnt++; 在fprintf语句之后。 在检测到另一种错误类型之后,此增量操作将在代码中更早地使用。 我将报告给作者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM