On 24 Jun 2010, at 3:13pm, Peng Yu wrote:
> I was asking whether it is possible to use Shebang with sqlite script.
> If it is possible, would you please show me how to modify the
> following script to do so?
>
> $ ./main.sql
> Error: unknown command or invalid arguments: "/main.sql". Enter
> ".help" for help
> $ cat main.sql
> #!/usr/bin/sqlite3 main.db
>
> create table tbl1(one varchar(10), two smallint);
> .quit
This is how to send a single command to sqlite3:
$ sqlite3 mydatabase.db 'CREATE TABLE myTable (name TEXT, value INTEGER);'
Put as many commands as you like in the quotes:
$ sqlite3 mydatabase.db "CREATE TABLE myTable (name TEXT, value INTEGER);INSERT
INTO myTable VALUES ('fred', 3);SELECT * FROM myTable"
fred|3
and put as many commands like that as you like in your shell script.
But it's not a neat way of scripting the command-line tool because it requires
you to create a shellscript with SQL commands in: two languages in the same
file. It's neater to make up a proper .sql file with just the SQL commands in,
then tell the command-line tool to execute the commands from the file. Here is
one way to send multiple commands to sqlite3:
$ cat makemydb.sql
CREATE TABLE myTable (name TEXT, value INTEGER);
INSERT INTO myTable VALUES ('fred', 3);
SELECT * FROM myTable;
$ sqlite3 mydatabase.db '.read makemydb.sql'
Here's how you would do it if you didn't know about the '.read' command:
$ cat makemydb.sql | sqlite3 mydatabase.db
Save the output in an output file:
$ cat makemydb.sql | sqlite3 mydatabase.db > saved.txt
Simon.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users