sqlite3:从命令行将模式转储到.sql文件中

Joe*_*lip 12 sql sqlite macos terminal

我试图将架构test.db仅(即没有数据)转储到schema.sqlOS X中从命令行调用的文件中,而不启动sqlite3.

我知道我能做到:

sqlite3
.open test.db
.output schema.sql
.schema
.quit
Run Code Online (Sandbox Code Playgroud)

但是我不想启动sqlite 3.这......

echo '.output schema.sql' | sqlite3 test.db
Run Code Online (Sandbox Code Playgroud)

创建空文件,但这...

echo '.schema' | sqlite3 test.db
Run Code Online (Sandbox Code Playgroud)

仅打印架构.如何从终端将其写入该文件?

谢谢!

CL.*_*CL. 25

shell允许重定向,并sqlite3可以将命令作为参数获取:

sqlite3 test.db .schema > schema.sql
Run Code Online (Sandbox Code Playgroud)


Joe*_*lip 5

弄清楚了!我只需要转义声明中的文本echo

echo -e '.output schema.sql\n.schema' | sqlite3 test.db
Run Code Online (Sandbox Code Playgroud)