SQLite3 Создать таблицу неожиданно "(" Ошибка - PullRequest
1 голос
/ 18 февраля 2020

Настройка

Ubuntu 18.04 на Google VM

Цель

Я пытаюсь создать для l oop несколько таблиц на основе моего списка клиенты

выпуск

Я могу отлично создать таблицу, если я запускаю

user@sql-server:~$ sqlite3 mydatabase.db
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
sqlite> create table client (Date integer, cheese integer, id1 integer, id2 integer, id3 integer, id4 integer, id5 integer, id6 integer, id7 integer, id8 integer, id9 integer, id10 integer, id11 integer, id12 integer, id13 integer, id14 integer, id15 integer, id16 integer, id17 integer, id18 integer, id19 integer, id20 integer);
sqlite> .tables
client  test

, но когда я пытаюсь создать скрипт "test. sh", как показано ниже :

#!/bin/bash

set -eu

sqlite3 adloox.db create table test2 (test2 string, testno2 integer);

exit

Я получаю следующую ошибку:

user@sql-server:~$ sh -x test.sh
+ set -eu
test.sh: 5: test.sh: Syntax error: "(" unexpected

Я вижу, что я ввожу sqlite3 adloox.db .tables Я могу получить ответ от терминала, поэтому я считаю, что мне нужно иметь это в одной строке, а не в нескольких строках в моем скрипте, так как он будет запрашивать ручной ввод. Но я нахожу странным, что ошибка, которую я получаю, связана с "(", поскольку там я не вижу, в чем разница. Может кто-то подтвердить, что я скучаю, тем, что то, что я делаю в сценарии, отличается от руководства Я пытался найти ответ, но все, что я нахожу, указывает на ручные вводы.

1 Ответ

1 голос
/ 18 февраля 2020

Просто добавьте кавычки вокруг вашей команды sqlite3 следующим образом:

sqlite3 adloox.db 'create table test2 (test2 string, testno2 integer);'
...