初始化数据库后如何从bash脚本退出sqlite3

问题描述 投票:0回答:1

我有一个包含多个

.sql
文件的文件夹,每个文件都创建自己的数据库。我正在尝试下面的 bash 脚本循环遍历每个文件并使用 sqlite3 初始化数据库。

for filepath in $(find ~/sql/ -name '*.sql'); do
        sqlite3 "${file}.db" -init "$filepath"
done

我的问题是我必须在终端中手动输入

.quit
才能在bash循环继续之前退出sqlite3。

我尝试添加

.quit
但终端无法识别 sqlite 命令。我是否需要在
.sql
文件中添加退出命令才能从 bash 终端或其他终端退出 sqlite?

编辑:从评论中,我让脚本自动运行

sqlite3 "${file}.db" < "$filepath"

bash sqlite
1个回答
0
投票

如果您不能/不想通过标准输入传递命令,解决方法是将

.quit
(例如,
.quoot
)拼错为
-init
文件中的最后一个语句,然后传递
命令行上的-bail
选项。

sqlite3
将执行
-init
文件中的命令,直到到达产生错误的命令(希望是故意拼写错误的命令),然后以非零状态终止。然后 bash 脚本可以继续。

© www.soinside.com 2019 - 2024. All rights reserved.