Відповіді:
Щоб вимкнути пагинацію, але зберегти висновок, використовуйте:
\pset pager off
Щоб запам'ятати це налаштування, додайте його до ~ / .psqlrc .
Дивіться посібник з psql .
У старих версіях Pg це було просто перемиканням, так \pset pager
Щоб повністю придушити вихід запиту, використовуйте \o /dev/null
у своєму psql
сценарії.
Щоб придушити psql
інформаційний вихід, запустіть його -q
або встановіть QUIET=1
у середовищі.
Щоб отримати результати та викинути їх, ви можете перенаправити stdout
на /dev/null
:
psql db -f sql.sql >/dev/null
Ви можете перенаправляти як stdout, так і stderr за допомогою:
psql db -f sql.sql >&/dev/null
але я не рекомендую цього, оскільки це викине інформацію про помилки, яка може вас попередити, що щось не виходить. Ви також даєте результати і викидаєте їх, що малоефективно; вам краще просто не виробляти їх в першу чергу, коригуючи запити.
Я теж шукав це, я знайшов шлях у подібному питанні на ServerFault:
psql -P pager=off <other params>
вимикає сторінку підключення, не придушуючи вихід.
bash, будучи оболонкою , має 2 потоки, ви можете перенаправляти такі вихідні дані: stdout та stderr, оскільки цей вихід потрібно кудись переспрямувати, у Linux є специфічний вузол "відкинути все", доступний через / dev / null . Все, що ви відправите туди, просто зникне в порожнечу.
(оболонки також мають вхідний потік, але я тут ігнорую це, оскільки ви попросили придушити вихід)
Ці потоки представлені числами: 1 для stdout та 2 для stderr.
Отже, якщо ви хочете переспрямувати тільки stdout, ви зробите це з операторами <
та >
операторами (в основному там, де це вказує, куди дані надходять)
припустимо, ми хочемо придушити stdout (перенаправлення на / dev / null):
psql db -f sql.sql > /dev/null
Як ви бачите, це значення stdout за замовчуванням, номер потоку не використовувався, якщо ви хочете використовувати номер потоку, який ви б написали
psql db -f sql.sql 1> /dev/null
Тепер, якщо ви хочете придушити stderror (потік №2), ви б скористалися
psql db -f sql.sql 2> /dev/null
Ви також можете перенаправити один потік на інший, наприклад, stderror to stdout, що корисно, якщо ви хочете зберегти весь вихід десь, регулярний та помилки.
psql db -f sql.sql 2>&1 > log.txt
пам'ятайте, що між ними не може бути пробілів 2>&1
Нарешті, а іноді найцікавішим є той факт, що ви можете придушити весь результат, використовуючи &>
, бо, коли хочете, щоб він був «абсолютно тихим»
psql db -f sql.sql &> /dev/null
psql -U user -P pager=off -d database -c 'SQL';
PAGER="/dev/null" psql db -P pager=always -f sql.sql
буде завжди вбивати вихід.