作为一个愚蠢的解决方法,这有效:
<. sqlite your_sqlite.db 'select * from your_table'
Run Code Online (Sandbox Code Playgroud)
这是因为当前的代码是这样做的:
if( stdin_is_interactive ){
utf8_printf(stderr,"-- Loading resources from %s\n",sqliterc);
}
Run Code Online (Sandbox Code Playgroud)
stdin_is_interactive = isatty(0);
Run Code Online (Sandbox Code Playgroud)
这也有效:
sqlite -batch your_sqlite.db 'select * from your_table'
Run Code Online (Sandbox Code Playgroud)
由于这段代码:
}else if( strcmp(z,"-batch")==0 ){
/* Need to check for batch mode here to so we can avoid printing
** informational messages (like from process_sqliterc) before
** we do the actual processing of arguments later in a second pass.
*/
stdin_is_interactive = 0;
}
Run Code Online (Sandbox Code Playgroud)
但它更长,所以有点违背目的。
小智 5
我知道这个问题现在已经过时了,但只是删除'/Users/ThG/.sqliterc'应该可以解决问题.'.sqliterc'是sqlite交互式命令行前端的配置文件.如果你不花很多时间在那里,你将不会错过这个文件.
小智 2
该资源消息出现在 stderr 上,后面跟着一个空行,因此您可以使用类似这样的内容删除它(包含在自己的脚本文件中):
#!/bin/bash
sqlite3 -init /your/init/file /your/sqlite3/file.db "
your
SQL
cmds
" 2>/dev/null | sed -e1d
Run Code Online (Sandbox Code Playgroud)