我正在尝试仅将test.db
的架构(即没有数据)从OS X中的命令行转储到名为schema.sql
的文件中,而不启动sqlite3。
我知道我能做到:
sqlite3
.open test.db
.output schema.sql
.schema
.quit
但我不想发布sqlite 3.这......
echo '.output schema.sql' | sqlite3 test.db
创建空文件但是......
echo '.schema' | sqlite3 test.db
仅打印架构。如何从终端将其写入该文件?
谢谢!
答案 0 :(得分:19)
shell允许重定向,private void drawBackground(RecyclerView.ViewHolder viewHolder, float dX, int actionState)
{
if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE)
{
Display display = getWindowManager().getDefaultDisplay();
Point screenSize = new Point();
display.getSize(screenSize);
final View backgroundViewRight = ((ViewHolder) viewHolder).mSwipeBackgroundRight;
final View backgroundViewLeft = ((ViewHolder) viewHolder).mSwipeBackgroundLeft;
// Swiping Right
if (dX > 0)
{
Log.d("right is", Integer.toString((int)Math.max(dX, 0)));
backgroundViewRight.setRight((int) Math.max(dX, 0));
backgroundViewRight.setLeft(0);
backgroundViewLeft.setRight(0);
backgroundViewLeft.setLeft(0);
}
// Swiping Left
else
{
// screenSize.x is the width of the screen
Log.d("left is", Integer.toString((int)(screenSize.x + dX)));
backgroundViewLeft.setRight(screenSize.x);
backgroundViewLeft.setLeft((int)(screenSize.x + dX));
backgroundViewRight.setRight(0);
backgroundViewRight.setLeft(0);
}
}
}
可以将命令作为参数:
sqlite3
答案 1 :(得分:2)
想出来!我只需要在echo
语句中转义文本:
echo -e '.output schema.sql\n.schema' | sqlite3 test.db
答案 2 :(得分:1)
仅供参考,你也可以做到
( echo .output schema.sql ; echo .schema ) | sqlite3 test.db
这是在子shell中运行两个echo命令并管理其输出。
或者
sqlite3 test.db <<EOF
.output schema.sql
.schema
EOF
请参阅How does "cat << EOF" work in bash?了解这是做什么的。