我看到很多示例显示如何使用sqlite3交互式shell,例如:
$ sqlite3
$ sqlite3> SELECT * from x;
但是我正在寻找一种在SQLite3数据库中使用bash脚本创建表的方法,也就是说,非交互式 - 任何人都知道如何做到这一点?
例如,以下不似乎有效,它仍然是交互式:
#!/bin/bash
sqlite3 test.db "create table n (id INTEGER PRIMARY KEY,f TEXT,l TEXT);"
sqlite3 test.db "insert into n (f,l) values ('john','smith');"
sqlite3 test.db "select * from n";
还有一个问题 - 通过调用“sqlite3”作为后台进程“唤醒SQLite3”是否有帮助 - 或者它几乎总是在MacOS和Linux的后台运行?
答案 0 :(得分:10)
虽然上面应该有效,但我认为最好不要多次调用sqlite3,因此我认为以下情况更可取:
ReadBytes
请注意,除非真的需要使用bash,否则出于便携性原因,您应该更喜欢“/ bin / sh”作为您的shebang。
答案 1 :(得分:7)
看起来像
一样简单#!/bin/bash
sqlite3 test.db "create table n (id INTEGER PRIMARY KEY,f TEXT,l TEXT);"
sqlite3 test.db "insert into n (f,l) values ('john','smith');"
sqlite3 test.db "select * from n";
来自https://mailliststock.wordpress.com/2007/03/01/sqlite-examples-with-bash-perl-and-python/
答案 2 :(得分:3)
您可以使用-batch选项禁用交互模式:
sqlite3 -batch test.db "create table n (id INTEGER PRIMARY KEY,f TEXT,l TEXT);"