Перенаправить stderr и stdout в Bash

Если вы хотите обработать его одной строкой, это простой способ.

file.sh --> db.EXPECTED_COLLECTION.remove("_id":1234)

cat file.sh | mongo <EXPECTED_COLLECTION>
619
задан codeforester 2 June 2017 в 20:01
поделиться

6 ответов

Смотрите здесь . Должен быть:

yourcommand &>filename

(перенаправляет и stdout и stderr к имени файла).

716
ответ дан David Johnstone 3 June 2017 в 06:01
поделиться
do_something 2>&1 | tee -a some_file

Это собирается перенаправить stderr к stdout и stdout к some_file и печать это к stdout.

436
ответ дан rubenvb 3 June 2017 в 06:01
поделиться
  • 1
    Этот doesn' t устраняют проблему, потому что я don' t хотят потерять расширенное расположение. – hatfinch 2 December 2013 в 17:03
bash your_script.sh 1>file.log 2>&1

1>file.log сообщает, что оболочка для отправки STDOUT в файл file.log, и 2>&1 говорит этому перенаправлять STDERR (дескриптор файла 2) к STDOUT (дескриптор файла 1).

Примечание: вопросы порядка как liw.fi указанный, 2>&1 1>file.log не работает.

37
ответ дан Guðmundur H 3 June 2017 в 06:01
поделиться
  • 1
    высота customView должна быть self.view.frame.size.height - 20:) – iPatel 5 June 2014 в 11:05

Можно перенаправить stderr к stdout и stdout в файл:

some_command >file.log 2>&1 

Видят http://tldp.org/LDP/abs/html/io-redirection.html

, Этот формат предпочтен, чем самый популярный &> формат, которые только работают в ударе. В Оболочке Bourne это могло быть интерпретировано как выполнение команды в фоне. Также формат является большим количеством читаемых 2 (STDERR), перенаправленный к 1 (STDOUT).

РЕДАКТИРОВАНИЕ: измененный порядок, как указано в комментариях

234
ответ дан 4 revs, 3 users 81% 3 June 2017 в 06:01
поделиться
  • 1
    Щедрость была автоматически награждена, но ответ главным образом корректен. Я решил свою проблему путем создания замены UINavigationView класс, который я вручную добавляю к своим представлениям, в то время как реальная панель навигации моих контроллеров остается скрытой. Хотя я ДЕЙСТВИТЕЛЬНО использую основанное на контроллере представления появление строки состояния plist объект и переопределение prefersStatusBarHidden – user 6 June 2014 в 18:17
LOG_FACILITY="local7.notice"
LOG_TOPIC="my-prog-name"
LOG_TOPIC_OUT="$LOG_TOPIC-out[$$]"
LOG_TOPIC_ERR="$LOG_TOPIC-err[$$]"

exec 3>&1 > >(tee -a /dev/fd/3 | logger -p "$LOG_FACILITY" -t "$LOG_TOPIC_OUT" )
exec 2> >(logger -p "$LOG_FACILITY" -t "$LOG_TOPIC_ERR" )

It is related: Writing stdOut & stderr to syslog.

It almost work, but not from xinted ;(

11
ответ дан 22 November 2019 в 21:51
поделиться

Любопытно, что это работает:

yourcommand &> filename

Но это дает синтаксическую ошибку:

yourcommand &>> filename
syntax error near unexpected token `>'

Вы должны использовать:

yourcommand 1>> filename 2>&1
21
ответ дан 22 November 2019 в 21:51
поделиться