通过bash脚本合并sqlite数据库
多亏了以前的SO帖子,我现在可以合并sqlite数据库了 但我想使用bash脚本以自动方式运行此合并 我尝试过各种方法,以下是我最新也是最彻底的失败:通过bash脚本合并sqlite数据库,bash,sqlite,Bash,Sqlite,多亏了以前的SO帖子,我现在可以合并sqlite数据库了 但我想使用bash脚本以自动方式运行此合并 我尝试过各种方法,以下是我最新也是最彻底的失败: ## DB to merge I1=d1.db I2=d2.db ## Command to run CMD='attach \'d2.db\' as toMerge; BEGIN; insert into sae select * from toMerge.sae; COMMIT; detach toMerge;' echo $CMD ##
## DB to merge
I1=d1.db
I2=d2.db
## Command to run
CMD='attach \'d2.db\' as toMerge; BEGIN; insert into sae select * from toMerge.sae; COMMIT; detach toMerge;'
echo $CMD
## Pass to sqlite
sqlite3 $I1 $CMD
这里有两个问题:
1-传递一个bash变量(这里是d2.db)。我也尝试过quote函数:
CMD='attach quote('$I2') as toMerge; BEGIN; insert into sae select * from toMerge.sae; COMMIT; detach toMerge;'
2-select命令中的*以bash方式解释,因此使用单引号。这是有效的
d1=d1.db
d2=d2.db
sqlite3 "$d1" <<!
attach database "$d2" as m;
insert into sae select * from m.sae;
detach m;
!
d1=d1.db
d2=d2.db
sqlite3“$d1”
使用这是可行的
d1=d1.db
d2=d2.db
sqlite3 "$d1" <<!
attach database "$d2" as m;
insert into sae select * from m.sae;
detach m;
!
d1=d1.db
d2=d2.db
sqlite3“$d1”
使用它是分隔符,它是分隔符,