как передать несколько команд в 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 .

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

  • Командная строка SQLite3: как вы отменяете команду?
  • Динамические веб-страницы на BCHS
  • Ошибка установки pysqlite на FreeBSD в virtualenv
  • Невозможно вставить записи в sqlite в среде Linux
  • Ошибка CGI при попытке извлечь из sqlite3
  • Не удалось выполнить атомарную инициализацию SQLite с ошибкой Subversion на Eclipse
  • Обработка вывода sqlite db в массив ksh с пробелами
  • Быстрый способ определить, является ли файл базой данных 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 - лучшая ОС в мире.