-cmd
でsqlite3
オプションを使用してクエリを実行できますが、sqlite3
はデータベースを開き、そこで対話形式の入力を待ちます。コマンドラインからsqlite3
に対してクエリを実行して終了するにはどうすればよいですか?
おかげで、
データベースファイルの引数の後に、コマンドを引用符で囲んでください。
たとえば、次はabc
というテーブルを作成します。
sqlite3 test.db 'create table abc (col0 int)'
「.exit」コマンド( 1 )を使用して、正常に終了できます。
sqlite3 test.db "select * from abc;" ".exit"
ドキュメント: https://sqlite.org/cli.html
絶対に「しなければならない」状況で立ち往生している場合は、-cmd
フラグは、コマンドラインからSQLite3を実行しているときに、連続して空白コマンドを使用して終了できます。
例えば:
sqlite3 test.db "select * from urls;" "" > test.txt
この例では、""
は、sqlite3プロセスを終了させます。 (少なくとも、OSXの場合はそうです)。