iproute2 ss -исключить сокеты, привязанные к петлевым адресам

Проблема в том, что обратные кавычки в SQL рассматриваются оболочкой как подстановки команд. Оболочка попытается запустить строку с обратной галочкой как команду, чтобы заменить этот бит выводом этой конкретной команды.

Оболочка делает это, потому что вы echoзаключаете строку в двойные кавычки.

Чтобы решить эту конкретную проблему, экранируйте каждую обратную кавычку как \`.

В идеале вы должны передать SQL как строку в одинарных кавычках, но это будет означать, что переменные не будут раскрыты.

Можно и так, что безопаснее:

printf 'INSERT INTO `mailbox` (`username`, `password`, `name`, `maildir`, `quota`, `local_part`, `domain`, `created`, `modified`, `active`) VALUES ("%s", "%s", "", "%s", 0, "xxx", "xxx", "date --rfc-3339=date", "date --rfc-3339=date", 1);\n' "$username" "$pass" "$xxxx"

... предполагая, что конкретная база данных, которую вы используете, может обрабатывать данные полей с двойными кавычками.

1
23.10.2020, 09:36
0 ответов

Теги

Похожие вопросы