Команда
psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql
возвращает список ошибок, которые слишком длинны для отображения, прокручивая до начала ошибки.
Я попробовал ту же команду с «| more
» и «| less
», добавленными в конце команды, но она не отображает сообщение постранично, как должно.
Я также пытался поместить вывод в файл с «> file.txt
», но я не получаю в этом новом файле то, что отображается на экране !!
Я не понимаю Зачем. Я думаю, я не могу сделать это с помощью команды PSQL ?? Есть ли другой способ получить все сообщения об ошибке?
Спасибо за помощь!
Ошибки, которые печатают большинство программ, отправляются в поток stderr
(Стандартная ошибка), тогда как выходные данные программы отправляются в поток stdout
(Стандартный вывод).
Каждый поток имеет файловый дескриптор , который можно рассматривать как число, идентифицирующее поток. stderr
имеет дескриптор файла 2, а значение для stdout
равно 1.
command > file.txt
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
command 1> file.txt
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;, . [+1132]
stderr
, вы должны написать: command 2> file.txt
stdout
и [ 1114], вы либо напишите: command &> file.txt
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Отправьте выходные данные из command
в file.txt
, а также объедините stderr
с stdout
.
less
или more
, сначала объедините stderr
в stdout
, а затем отправьте его в программу корреспондирования.
command 2>&1 | less
Если вы пытаетесь перехватить вывод STDERR в более / менее или направить в файл, вам нужно указать это сделать. Просто используя | или> будет только захватывать STDOUT, а не STDERR. Чтобы получить оба, вам нужно сделать что-то вроде:
psql -d ... 2>1 | less
Это перенаправит STDERR в STDOUT, и тогда оба будут появляться в меньшем количестве, когда вы пытаетесь пролистать вывод.
Я думаю, что dobey и green7 имеют лучшие ответы для вашей конкретной проблемы, но для полноты картины:
Я могу получить сообщение об ошибке или сообщение, которого не ожидал, и не хочу снова запускать команду, или не хочу тратить время Поэтому, когда я устанавливаю новую операционную систему, я запускаю gnome-терминал, захожу в Edit-> Preferences-> Scrolling Tab и устанавливаю флажок неограниченной прокрутки.
При использовании виртуальной консоли ядра вы можете прокрутить назад с помощью Shift-PageUp.
Когда я использую меньше | больше или не использую ни того, ни другого, мне иногда легче понять сообщения, если расширить экран терминала так, чтобы он был достаточно большим по горизонтали, чтобы вместить большую часть сообщения, чтобы исключить сгиб строки.