|  | 
| 
Запрос на вставку данных из bash в postgresql через psql | |||
|---|---|---|---|
| #18+ Всем доброго дня Имеется утилита, которая выводит показания датчиков температуры. Нужно раз в полчаса сохранять показания этих датчиков в базу данных. Вывод утилиты: ID: 6122 - Измерение температуры... Измерение температуры завершено ROM=8d00000ae4f4b028 T=51.0625 ROM=2600000ae2cb2b28 T=61.9375 ROM=be00000ae4ba1f28 T=44.9375 ROM=2100000ae4838c28 T=78.0625 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Похоже где-то есть ошибка, из-за которой psql не может распарсить аргументы. Возможно, проблема с раскрытием переменных? Если изменить последнюю строчку на такую (навеяно этим ): Код: sql 1. то всё работает, запрос выполняется, данные вставляются. Как всё-таки правильно вызвать psql из bash, передав ему в качестве параметров значения переменных? ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 11.03.2019, 15:19 |  | ||
| 
Запрос на вставку данных из bash в postgresql через psql | |||
|---|---|---|---|
| #18+ Код: plaintext 1. Первый вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Второй вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 12.03.2019, 22:48 |  | ||
| 
Запрос на вставку данных из bash в postgresql через psql | |||
|---|---|---|---|
| #18+ fortressКак всё-таки правильно вызвать psql из bash, передав ему в качестве параметров значения переменных?параметры не нужны. Код: sql 1. 2. 3. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 13.03.2019, 08:09 |  | ||
| 
Запрос на вставку данных из bash в postgresql через psql | |||
|---|---|---|---|
| #18+ Scott Tiger, Спасибо за ответ. Для моей системы (armbian) такого инструмента как truss не нашлось, но есть strace в котором можно увидеть вызов execve c параметрами. Пробуем вариант 1, как было в исходном скрипте. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Пробуем вариант 2, убрали лишние двойные кавычки возле второго аргмуента. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Тогда просто перенесём ключ "-с" в другую переменную: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Также, оказалось важно чтобы в переменной v, перед ключом "-с", не было пробелов, иначе дальнейшая команда не воспринимается. Изначально я полагал, что Код: sql 1. будет преобразовано в строку вида Код: sql 1. и при вызове psql ей будут переданы параметры из этой строки, например так Код: sql 1. 2. 3. 4. Но, как видно выше, при раскрытии переменных bash(?) ведет себя по-другому (объединяя значение переменной в 1 параметр, даже если там есть пробелы): Код: sql 1. 2. 3. Наверняка это как-то правильно называется (раскрытие переменных?). ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.03.2019, 13:25 |  | ||
| 
Запрос на вставку данных из bash в postgresql через psql | |||
|---|---|---|---|
| #18+ Андрей Панфилов, спасибо Такой способ тоже подходит: Код: sql 1. 2. 3. 4. 5. 6. ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 22.03.2019, 13:33 |  | ||
|  | 

| start [/forum/topic.php?desktop=1&fid=25&tid=1481180]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 13ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 39ms | 
| get topic data: | 11ms | 
| get forum data: | 2ms | 
| get page messages: | 46ms | 
| get tp. blocked users: | 2ms | 
| others: | 11ms | 
| total: | 139ms | 

| 0 / 0 | 
