我的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正在打印我要查看的数据,我的输出文件也没有数据.每次调用它都会重置数据库设置吗?我很困惑!
解决方法:
sqlite3 Correlate.db <<EOF
.mode csv
.output correlated.csv
SELECT * FROM ALL_Data;
.show
EOF
您也可以将这些命令放在文件中,然后将其重定向到sqlite3,例如:
sqlite3 Correlate.db < commandfile