<. sqlite your_sqlite.db 'select * from your_table'
这是因为当前代码执行以下操作:
if( stdin_is_interactive ){
utf8_printf(stderr,"-- Loading resources from %s\n",sqliterc);
}
强制标准输入重定向会阻止这一点,原因是以下代码:
stdin_is_interactive = isatty(0);
这同样适用:
sqlite -batch your_sqlite.db 'select * from your_table'
因为这段代码:
}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;
}
6条答案
按热度按时间sqougxex1#
我知道这个问题现在已经很老了,但是简单地删除'/Users/ThG/.sqliterc'应该可以解决这个问题。'.sqliterc'是sqlite的交互式命令行前端的配置文件。如果你不花很多时间在那里,你不会错过这个文件。
2vuwiymt2#
该资源msg出现在stderr上,后面跟着一个空行,因此可以使用如下代码将其删除( Package 在自己的脚本文件中):
snz8szmq3#
当在shell脚本中使用sqlite时,你通常根本不想加载你的
~/.sqliterc
。说明:
-init
指定要加载的文件,而不是~/.sqliterc
。<(echo)
使用Process Substitution提供临时空文件的路径。htrmnn0y4#
有点晚了,但是@levant pied几乎有了解决方案,你需要传递一个额外的-interactive来静音--加载资源。
gblwokeq5#
你可以简单地重命名你的配置文件来禁用警告。并在使用后恢复重命名以保留配置。
我使用以下代码:
jjjwad0x6#
作为一个愚蠢的变通方案,以下方法有效:
这是因为当前代码执行以下操作:
强制标准输入重定向会阻止这一点,原因是以下代码:
这同样适用:
因为这段代码:
但它太长了,有点违背初衷