sqlite3和bash,数据库设置

时间:2014-11-03 21:51:11

标签: linux bash sqlite

我的bash脚本自动将一些数据输入到sqlite数据库中。我遇到的问题是,每次更改数据库设置时,运行下一个命令时更改都会丢失。一个例子可以解释这一点。

sqlite3 Correlate.db ".mode csv"
sqlite3 Correlate.db ".output Correlated.csv"
sqlite3 Correlate.db "SELECT * FROM ALL_Data;
sqlite3 Correlate.db ".show"

.show的最终结果如下:

     echo: off
  explain: off
  headers: off
     mode: list
nullvalue: ""
   output: stdout
separator: "|"
    stats: off
    width: 

似乎我将输出模式更改为csv已经丢失我的输出文件也没有数据,即使stdout正在打印我想看的数据。是否每次调用它时都会重置数据库设置?我很困惑!

1 个答案:

答案 0 :(得分:4)

我会尝试这样的方法将多个命令发送到sqlite3的一个实例:

sqlite3 Correlate.db <<EOF
.mode csv
.output Correlated.csv
SELECT * FROM ALL_Data;
.show
EOF

您也可以将这些命令放入文件中并将其重定向到sqlite3,例如:

sqlite3 Correlate.db < commandfile