创建一个shell脚本,在ubuntu中从php运行sqlite命令

创建一个shell脚本,在ubuntu中从php运行sqlite命令,php,sqlite,shell,ubuntu,Php,Sqlite,Shell,Ubuntu,我想在ubuntu10.10操作系统上使用SHELL脚本创建一个新的sqlite数据库……有什么想法吗 我用以下代码尝试了“create.sh”文件 #!/bin/bash sqlite ex3.db create table t1(f1 integer primary key,f2 text) 然后从termminal运行a./create.sh,但它会导致 sqlite>prompt…我在任何地方都看不到创建的DB ex3 请帮忙 #!/bin/bash sqlite3 ex3.db "

我想在ubuntu10.10操作系统上使用SHELL脚本创建一个新的sqlite数据库……有什么想法吗

我用以下代码尝试了“create.sh”文件

#!/bin/bash
sqlite ex3.db
create table t1(f1 integer primary key,f2 text)
然后从termminal运行a./create.sh,但它会导致 sqlite>prompt…我在任何地方都看不到创建的DB ex3

请帮忙

#!/bin/bash

sqlite3 ex3.db "create table t1(f1 integer primary key,f2 text)"

很遗憾,我想现在无法检查。您想通过标准输入将SQL DDL命令提供给SQLite:

#!/bin/bash
echo 'create table t1(f1 integer primary key,f2 text);' | sqlite ex3.db

实现这一点的另一种方法是使用SQL\u ENTRY\u TAG\N

#!/bin/bash
sqlite3 mydatabase <<SQL_ENTRY_TAG_1
SELECT * FROM sqlite_master;
SQL_ENTRY_TAG_1
#/bin/bash

sqlite3 mydatabase示例
CREATE
CREATE.sh的
INSERT

#!/bin/bash
DB_NAME=ex3.sqlite
DB_TABLE=t1

sqlite3 $DB_NAME << EOF

DROP TABLE IF EXISTS $DB_TABLE;

CREATE TABLE $DB_TABLE (
    "f1" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL,
    "f2" TEXT NOT NULL DEFAULT "f2-text"
);

INSERT INTO $DB_TABLE (f1, f2) VALUES (1, "text 1");
INSERT INTO $DB_TABLE (f1, f2) VALUES (2, "text 2");

EOF
#/bin/bash
DB_NAME=ex3.sqlite
DB_表=t1

sqlite3$DB_NAME您可以在sqlite3上使用参数行吗,例如:

$sqlite3 -line teste.db 'create table table_name (field_name integer)'
$sqlite3 -line teste.db 'insert into table_name (123)'
$sqlite3 -line teste.db 'select * from table_name'

除非希望在变量中捕获命令的输出,否则在shell脚本中不需要反勾号。OTOH,您可以通过类似这样的命令行为SQLite提供一小段SQL,它仍然可以使用backticks。不过,您可能希望对更复杂的SQL块使用标准输入。