2011-04-21 236 views
5

我想在ubuntu10.10操作系統上使用A SHELL SCRIPT創建一個新的sqlite數據庫....任何想法?創建一個shell腳本來在ubuntu中運行sqlite命令

我試着用下面的代碼「create.sh」文件...

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

不是運行從termminal一個./create.sh,但它使我 sqlite的>提示符下......我沒看見創建DB EX3任何地方..

請幫助...

回答

4
#!/bin/bash 

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

應該工作,我認爲,不幸的是,沒能馬上檢查。

+1

除非您想要將變量中的命令輸出捕獲到外殼腳本中,否則不需要反引號。 OTOH,你可以**通過類似的命令行給SQLite小塊SQL,它仍然可以與反引號一起工作。儘管如此,您可能想要使用標準輸入來處理更復雜的SQL塊。 – 2011-04-21 08:21:26

+1

這對我有用...沒有感謝弗拉德Khomich .. – Roopa 2011-04-23 04:40:01

3

你要養活你的SQL DDL命令通過標準的輸入對於SQLite:

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

一種實現多種方式,可以使用SQL_ENTRY_TAG_N

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

看到snippet的細節

0

CREATEINSERTcreate.sh的示例:

#!/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 
相關問題