bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Here document and stdin?


From: Peng Yu
Subject: Here document and stdin?
Date: Sun, 15 Aug 2010 19:47:27 -0500

Here,

I have the following working sql script, which takes /dev/stdin as
input. Then I want to convert it to a here document. But it doesn't
work, as shown below.

I think that this may not be a sqlite3 problem. Rather, it may be
because I don't use here document and pipe correctly. Could any bash
expert take a look see if there is anything wrong with my usage of
pipe and here document?

################### a working sql script
$ cat main.sql
create table test (id integer primary key, value text);
.separator "\t"
.import /dev/stdin test

.headers on
.mode column
select * from test;
$ cat main.sh
#!/usr/bin/env bash

rm -rf main.db
cat file.txt | sqlite3 main.db '.read main.sql'
$ cat file.txt
1       eenie
2       meenie
3       miny
4       mo
$ ./main.sh
id          value
----------  ----------
1           eenie
2           meenie
3           miny
4           mo
#######################

#######################Converted to bash here document, which doesn't work.
$ cat main.sql
#!/usr/bin/env bash

rm -rf main.db
cat file.txt | sqlite3 main.db <<EOF

create table test (id integer primary key, value text);
.separator "\t"
.import /dev/stdin test

.headers on
.mode column
select * from test;

EOF
$ ./main.sql
Error: /dev/stdin line 1: expected 2 columns of data but found 1
####################
-- 
Regards,
Peng



reply via email to

[Prev in Thread] Current Thread [Next in Thread]