Thay thế cho | thêm để hiển thị kết quả lỗi theo trang


3

Lệnh

psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql

trả về một danh sách các lỗi quá dài sẽ được hiển thị bằng cách cuộn lên đến đầu lỗi.

Tôi đã thử cùng một lệnh với " | more" và " | less" được thêm vào cuối lệnh nhưng nó không hiển thị trang thông báo theo trang như bình thường.

Tôi cũng đã cố gắng đưa đầu ra vào một tệp có " > file.txt" nhưng tôi không nhận được trong tệp mới này những gì được hiển thị trên màn hình !!

Tôi không hiểu tại sao. Tôi đoán tôi không thể làm điều này với một lệnh psql ?? Có cách nào khác để nhận được tất cả các thông báo lỗi không?

Cảm ơn bạn đã giúp đỡ!


Bạn đã thử chương trình máy nhắn tin đầu cuối ( pg)?
devav2

Câu trả lời:


4

Các lỗi mà hầu hết các chương trình in được gửi đến stderrluồng (Lỗi tiêu chuẩn), trong khi đầu ra của chương trình được gửi đến stdoutluồng (Đầu ra tiêu chuẩn).

Mỗi luồng có một mô tả tệp , mà bạn có thể nghĩ là một số xác định một luồng. stderrcó mô tả tệp 2 và giá trị cho stdoutlà 1.

  • Khi bạn chạy
    lệnh> file.txt

          cái này tương đương với việc chạy

    lệnh 1> file.txt

          có ý nghĩa - chuyển hướng nội dung của stdouttệpfile.txt .

  • Tuy nhiên, nếu bạn muốn chuyển hướng nội dung của stderrchỉ, bạn sẽ viết:
    lệnh 2> file.txt
  • Và để chuyển hướng cả hai stdoutstderr, bạn sẽ viết:
    lệnh &> file.txt

                 HOẶC LÀ

    lệnh> file.txt 2> & 1

            Bạn có thể giải thích các lệnh thứ hai là - Gởi đầu ra của commandđể file.txt, và cũng có thể kết hợp stderrvớistdout .

  • Tương tự như vậy cho việc gửi lỗi cho lesshay more, lần đầu tiên hợp nhất stderrđể stdoutvà sau đó gửi nó vào chương trình correspoding.
    lệnh 2> & 1 | ít hơn

2

Nếu bạn đang cố gắng bẫy đầu ra STDERR thành nhiều hơn / ít hơn hoặc trực tiếp đến một tệp, bạn cần yêu cầu nó làm như vậy. Đơn giản chỉ cần sử dụng | hoặc> sẽ chỉ lấy STDOUT, và không lấy STDERR. Để lấy cả hai, bạn cần làm một cái gì đó như:

psql -d ... 2>1 | less

Điều này sẽ chuyển hướng STDERR thành STDOUT, và sau đó cả hai sẽ xuất hiện ít hơn khi bạn đang cố trang qua đầu ra.


0

Tôi nghĩ dobey và green7 có câu trả lời tốt hơn cho vấn đề cụ thể của bạn, nhưng, về tính đầy đủ:

Tôi có thể gặp lỗi hoặc thông báo mà tôi không mong đợi và không muốn chạy lại lệnh hoặc không muốn mất thời gian. Do đó, bất cứ khi nào tôi cài đặt một hệ điều hành mới, tôi khởi động gnome-terminal, đi tới Chỉnh sửa-> Tùy chọn-> Tab cuộn và nhấp vào hộp kiểm cuộn không giới hạn.

Khi sử dụng bảng điều khiển ảo kernel, bạn có thể cuộn lại bằng Shift-PageUp.

Khi sử dụng ít | nhiều hơn hoặc không sử dụng, đôi khi tôi thấy dễ hiểu các tin nhắn hơn nếu tôi mở rộng màn hình đầu cuối đủ lớn theo chiều ngang để giữ hầu hết tin nhắn để loại bỏ việc gấp dòng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.