sqlite 脚本编写 ,求高手指教!!

yaya237 2013-12-26 01:02:21
我要在c代码中调用: system(“sh import.sh”),我试出来在命令行中指令就是如下5条:
sqlite ./usr/pbm_db/pbm.db

.separator ","

drop table pbmtmp;

create table pbmtmp(Name TEXT,Number TEXT, Anr TEXT,Anr1 TEXT, Email TEXT,GroupID INTEGER, Group_name TEXT, Pbm_note TEXT, Location INTEGER);

.import ./usr/pbm_db/pbm1.csv pbmtmp .exit

要写成一个sh脚本,应该怎么写?还有如果脚本运行中有错误,比如运行到 .import ./usr/pbm_db/pbm1.csv pbmtmp,时返回了Error: pbm1.csv line 1: expected 10 columns of data but found 9,如何在c中捕捉到这个错误信息?
...全文
248 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaya237 2014-01-01
  • 打赏
  • 举报
回复
脚本这样写了,push进去,运行报错的,不行啊!
yaya237 2013-12-29
  • 打赏
  • 举报
回复
先不判断错误值,这个脚本怎么写呢?我要是把那几条命令直接就这么写在.sh文件中,
sqlite ./usr/pbm_db/pbm.db 
.separator ","
drop table pbmtmp;
 create table pbmtmp(Name TEXT,Number TEXT, Anr TEXT,Anr1 TEXT, Email TEXT,GroupID INTEGER, Group_name TEXT, Pbm_note TEXT, Location INTEGER);
.import ./usr/pbm_db/pbm1.csv pbmtmp .exit 
然后push进去,用命令sh export.sh运行总是报错啊!
yaya237 2013-12-29
  • 打赏
  • 举报
回复
先不判断错误值,这个脚本怎么写呢?我要是把那几条命令直接就这么写在.sh文件中,
sqlite ./usr/pbm_db/pbm.db 
.separator ","
drop table pbmtmp;
 create table pbmtmp(Name TEXT,Number TEXT, Anr TEXT,Anr1 TEXT, Email TEXT,GroupID INTEGER, Group_name TEXT, Pbm_note TEXT, Location INTEGER);
.import ./usr/pbm_db/pbm1.csv pbmtmp .exit 
然后push进去,用命令sh export.sh运行总是报错啊!
挣扎中前行 2013-12-27
  • 打赏
  • 举报
回复
System会有个执行返回值吧,判断下试试?
Carl_CCC 2013-12-27
  • 打赏
  • 举报
回复
C语言里面你就不要system了,你用popen管道,然后在管道里面把标准输入读回来就可以了。
yaya237 2013-12-27
  • 打赏
  • 举报
回复
引用 1 楼 Idle_Cloud 的回复:
sqlite的脚本可以这样写 echo "你的语句" | sqlite3 数据库.db 关于错误信息,你重定向就好了在末尾加上2>&1 sh import.sh 2>&1
我意思在c语言中要调用这个脚本, pbm_import() { .... system(sh import.sh); ..... } import.sh 脚本应该怎么写?原来没写过脚本,一点都不知道该怎么写?能给我例子吗? sh import.sh 2>&1 重定向是把脚本运行中的错误写到了哪里吗?
yaya237 2013-12-26
  • 打赏
  • 举报
回复
我意思在c语言中要调用这个脚本, pbm_import() { .... system(sh import.sh); ..... } import.sh 脚本应该怎么写?原来没写过脚本,一点都不知道该怎么写?能给我例子吗? sh import.sh 2>&1 重定向是把脚本运行中的错误写到了哪里吗?
ljc007 2013-12-26
  • 打赏
  • 举报
回复
sqlite ./usr/pbm_db/pbm.db <<EOF
.separator ","
drop table pbmtmp;
 create table pbmtmp(Name TEXT,Number TEXT, Anr TEXT,Anr1 TEXT, Email TEXT,GroupID INTEGER, Group_name TEXT, Pbm_note TEXT, Location INTEGER);
.import ./usr/pbm_db/pbm1.csv pbmtmp .exit
<<EOF
Carl_CCC 2013-12-26
  • 打赏
  • 举报
回复
sqlite的脚本可以这样写 echo "你的语句" | sqlite3 数据库.db 关于错误信息,你重定向就好了在末尾加上2>&1 sh import.sh 2>&1

23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧