我的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正在打印我想看的数据。是否每次调用它时都会重置数据库设置?我很困惑!
答案 0 :(得分:4)
我会尝试这样的方法将多个命令发送到sqlite3
的一个实例:
sqlite3 Correlate.db <<EOF
.mode csv
.output Correlated.csv
SELECT * FROM ALL_Data;
.show
EOF
您也可以将这些命令放入文件中并将其重定向到sqlite3
,例如:
sqlite3 Correlate.db < commandfile