мне нужна помощь в отправке переменных оболочек в PSQL -c запроса внутри .sh:Использование переменной оболочки в команде Psql
#!/bin/sh
timeStamp=`date +%s`
timeStampLast24H= expr $timeStamp - 86400
psql -U postgres -c "COPY (SELECT atribute FROM table WHERE ts>$timeStampLast24H) TO stdout DELIMITER ';' CSV HEADER; > (...)"
Я делаю это, чтобы получить только те строки из последнего дня, потому что человек, который создал базу данных, использовал rectimestamp
как целое число, а нормальные функции из postgres не будут работать (например, now()-interval 'Given_Period'
).
Изменение «$ timeStampLast24H» тем, что делает postgres понятным для целого числа, которое точно соответствует метке времени за последние 24 часа. Если я использую точную метку времени на своем месте, запрос работает хорошо.
Спасибо.
Но я могу напечатать timeStampLast24H обычно с эхом! – Minish
Теперь с кодом в вашем сообщении вы не можете. См. Http://ideone.com/wx7H5f. Или, если вы можете, тогда у него было значение от этого кода. Вы можете подумать, что «echo» сразу после строки «назначение» работает, но на самом деле это вызов 'expr', выводящий его. –
Тогда должно быть 'timeStampLast24H = expr $ timeStamp-86400'? – Minish