как передать несколько команд в sqlite3 в одной команде оболочки liner

Я пытаюсь сохранить содержимое буфера обмена в базу данных sqlite. Созданная база данных и таблицы.

Я не хочу, чтобы он создавал файл journal в каждом изменении буфера обмена, поэтому я попытался передать PRAGMA journal_mode = OFF; флаг. Но сложно передать эти команды в одной команде liner, потому что sqlite принимает только две команды, такие как

 sqlite3 clipboard_archive.db "insert into cb (cb_context) values ('clipboard');" 

оно работает. Я искал сайты Q&A , некоторые рекомендации повторяют команды следующим образом.

 echo "PRAGMA journal_mode = OFF;" | sqlite3 clipboard_archive.db "insert into cb (cb_context) values ('clipboard');" 

Но PRAGMA journal_mode = OFF; не вступает в силу таким образом, хотя он работает в командной строке sqlite3 .

Что случилось с моим однострочным скриптом?

  • Динамические веб-страницы на BCHS
  • Командная строка SQLite: как вы подключаете вывод к утилите UNIX?
  • Установленный sqlite3 v3.8, но Mac-терминал по-прежнему запускает старую версию 3.6 по умолчанию
  • Ошибка установки pysqlite на FreeBSD в virtualenv
  • выполнить удаленную команду sqlite
  • Как подсчитать точное количество созданных и удаленных файлов журнала sqlite?
  • Ошибка CGI при попытке извлечь из sqlite3
  • Firefox / Icecat: ошибка версии SQLite: приложение обновлено, но ваша версия SQLite слишком стар и приложение не может работать
  • One Solution collect form web for “как передать несколько команд в sqlite3 в одной команде оболочки liner”

    Не знаете, почему вы хотите использовать SQLite, если вы не хотите, чтобы журнал (вы считали гораздо более быстрый режим WAL, если скорость беспокоит?), Но вы можете дать несколько команд, разделенных точкой с запятой:

     sqlite3 clipboard_archive.db "PRAGMA journal_mode = OFF; insert into cb (cb_context) values ('clipboard');" 
    Linux и Unix - лучшая ОС в мире.