Untuk menonaktifkan pagination tetapi mempertahankan output, gunakan:
\pset pager off
Untuk mengingat pengaturan ini, tambahkan ke ~ / .psqlrc Anda .
Lihat manual psql .
Pada Pg versi yang lebih lama, itu hanya beralih, jadi \pset pager
Untuk sepenuhnya menekan output kueri, gunakan \o /dev/null
dalam psql
skrip Anda .
Untuk menekan psql
keluaran informasi, jalankan dengan -q
atau atur QUIET=1
di lingkungan.
Untuk menghasilkan hasil dan membuangnya, Anda dapat mengarahkan ulang stdout
ke /dev/null
dengan:
psql db -f sql.sql >/dev/null
Anda dapat mengarahkan ulang stdout dan stderr dengan:
psql db -f sql.sql >&/dev/null
tapi saya tidak merekomendasikan itu, karena itu akan membuang informasi kesalahan yang mungkin memperingatkan Anda ada sesuatu yang tidak beres. Anda juga menghasilkan hasil dan membuangnya, yang tidak efisien; Anda lebih baik hanya tidak memproduksinya dengan menyesuaikan pertanyaan Anda.
PAGER="/dev/null" psql db -P pager=always -f sql.sql
membuatnya selalu mematikan output.Saya mencari ini juga, saya menemukan cara dalam pertanyaan serupa di ServerFault:
mematikan hal paging, tanpa menekan output.
sumber
Ini pilihan lain. Itu memang memiliki keuntungan bahwa Anda tidak harus mengingat nama opsi psql, dll.
sumber
bash, sebagai sebuah shell , memiliki 2 aliran, Anda dapat mengarahkan ulang data keluaran itu: stdout dan stderr, karena keluaran ini perlu diarahkan ke suatu tempat, linux memiliki simpul 'buang semuanya' yang dapat dicapai melalui / dev / null . Semua yang Anda kirim ke sana akan hilang begitu saja.
(kerang juga memiliki aliran input tetapi saya akan mengabaikan ini di sini karena Anda meminta untuk menekan output)
Aliran ini diwakili oleh angka: 1 untuk stdout dan 2 untuk stderr.
Jadi, jika Anda ingin mengarahkan ulang stdout, Anda akan melakukannya dengan operator
<
dan>
(pada dasarnya menunjuk ke tempat data mengalir)misalkan kita ingin menekan stdout (redirect ke / dev / null):
psql db -f sql.sql > /dev/null
Seperti yang Anda lihat ini stdout adalah default, tidak ada nomor aliran yang digunakan jika Anda ingin menggunakan nomor aliran yang akan Anda tulis
psql db -f sql.sql 1> /dev/null
Sekarang jika Anda ingin menekan stderror (streaming nomor 2), Anda akan menggunakannya
psql db -f sql.sql 2> /dev/null
Anda juga dapat mengalihkan satu aliran ke aliran lain, misalnya stderror ke stdout, yang berguna jika Anda ingin menyimpan semua output di suatu tempat, reguler dan kesalahan.
psql db -f sql.sql 2>&1 > log.txt
Pikiran Anda tidak mungkin ada ruang antara
2>&1
Akhirnya dan terkadang yang paling menarik adalah fakta bahwa Anda dapat menekan semua output dengan menggunakan
&>
, karena ketika Anda menginginkannya 'sangat sunyi'psql db -f sql.sql &> /dev/null
sumber
sumber
sumber