避免消息“ - - 从.sqliterc加载资源”

时间:2010-11-13 21:44:16

标签: sqlite

小问题,但令人恼火:有没有办法避免每次查询时出现以下消息:

  

- 从/Users/ThG/.sqliterc

加载资源

6 个答案:

答案 0 :(得分:5)

我知道这个问题现在已经过时了,但只是删除'/Users/ThG/.sqliterc'应该可以解决问题。 '.sqliterc'是sqlite交互式命令行前端的配置文件。如果你不花很多时间在那里,你就不会错过这个文件。

答案 1 :(得分:3)

这是一个愚蠢的解决方法,它起作用:

<. sqlite your_sqlite.db 'select * from your_table'

这是因为current code会这样做:

 if( stdin_is_interactive ){
   utf8_printf(stderr,"-- Loading resources from %s\n",sqliterc);
 }

由于this piece of code,强制标准输入重定向阻止了此操作:

stdin_is_interactive = isatty(0);

这同样有效:

sqlite -batch your_sqlite.db 'select * from your_table'

由于this piece of code

}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;
}

但时间更长,因此无法达到目的。

答案 2 :(得分:2)

那个资源msg出现在stderr上,然后是一个空白行,所以你可以用这样的东西摆脱它(包裹在它自己的脚本文件中):

#!/bin/bash
sqlite3 -init /your/init/file /your/sqlite3/file.db "
    your
    SQL
    cmds
" 2>/dev/null | sed -e1d

答案 3 :(得分:1)

有点晚了,但是@levant几乎解决了,您需要传递一个附加的-interactive来静音--loading资源。

$ sqlite3 -batch -interactive
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
sqlite> .q

答案 4 :(得分:0)

您可以简单地重命名配置文件以禁用警告。并还原重命名以保留使用后的配置。

我使用以下内容:

#suppress default configuration warnings
mv $HOME/.sqliterc $HOME/.backup.sqliterc 

# sqlite3 scripts...

#revert
mv $HOME/.backup.sqliterc $HOME/.sqliterc

答案 5 :(得分:0)

在 shell 脚本中使用 sqlite 时,您通常根本不想加载您的 ~/.sqliterc。这对我很有效:

sqlite3 -init <(echo)

说明:

  • -init 指定要加载的文件而不是 ~/.sqliterc
  • <(echo) 使用 Process Substitution 提供临时空文件的路径。