Os meta-comandos SQLite não são terminados por ;
, mas por nova linha. Portanto, você terá que fornecer os comandos de alguma outra forma para que as novas linhas sejam inseridas nos lugares corretos.
Aqui estão alguns exemplos, dos quais eu provavelmente usaria o primeiro (porque é legível).
-
Use um documento aqui:
sqlite3 testdb <<END_COMMANDS .mode csv .import /tmp/deleteme.csv users END_COMMANDS
-
Formate os comandos com
printf
:printf '.mode csv\n.import /tmp/deleteme.csv users\n' | sqlite3 test.db
-
Use um string aqui com escapes C (em shells que o suportem):
sqlite3 test.db <<<$'.mode csv\n.import /tmp/deleteme.csv users\n'