Ваша проблема в разбиении слов .Когда вы запускаете это:
sqlite3 database.db $sql
Оболочка разбивает $sql
на слова.Но sqlite3
ожидает команду SQL в качестве единственного параметра.Чтобы предотвратить разбиение слов, вы должны заключить $sql
в двойные кавычки:
sqlite3 database.db "$sql"
Если вы хотите сохранить sqlite3 database.db
в переменной с именем cmd
, вы можете написать:
$cmd "$sql"
Оболочка разделится $cmd
на слова, и в этом случае вы этого захотите.Вы хотите, чтобы оболочка увидела команду sqlite3
и другое слово database.db
в качестве первого аргумента.Таким образом, мы не заключаем $cmd
в двойные кавычки.