Почему эта команда работает для вывода сценария регистрации?

Эта команда не сохраняет вывод моего скрипта в файле журнала:

. myscript.sh | tee -a log_file.log 

Однако эта следующая команда сохраняет вывод в файле журнала.

 . myscript.sh 2>&1 | tee -a dash_log.log 

Почему второй работает, а не первый? AFAIK единственная разница в том, что я сказал bash перенаправить stderr на stdout, и это не должно иметь никакого значения для того, что происходит с stdout. Тем не менее эта первая команда даже не сохранит версию stdout с ошибкой в ​​файле журнала.

И в случае, если это имеет значение: я на Ubuntu 12.04, размещенный на AWS

EDIT: Это было вызвано ошибочными предположениями о том, как wget выводит сообщения. См. Https://stackoverflow.com/questions/13066518/why-does-wget-output-to-stderr-rather-than-stdout и http://www.gnu.org/software/wget/manual/html_node/Logging и-Input-File-Options.html

2 Solutions collect form web for “Почему эта команда работает для вывода сценария регистрации?”

Кажется вероятным, что ваш скрипт пишет больше всего или весь его вывод в stderr. Это легко проверить

 myscript.sh > std.out myscript.sh 2> err.out 

затем просмотрите содержимое каждого файла и получите образование.


Я сомневаюсь в этом – единственный выход из сценария происходит от вызовов wget

Вместо того, чтобы сомневаться, снова это легко проверить

 $ wget http://serverfault.com >std.out --2013-09-09 07:06:25-- http://serverfault.com/ Resolving serverfault.com... 198.252.206.16 Connecting to serverfault.com|198.252.206.16|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 51867 (51K) [text/html] Saving to: “index.html.6” 100%[=================================================>] 51,867 231K/s in 0.2s 2013-09-09 07:06:26 (231 KB/s) - “index.html.6” saved [51867/51867] 

Смотрите, вывод все равно записывается на терминал, затем попробуйте

  $ wget http://serverfault.com 2>err.out $ 

QED

Команда wget записывает вывод на stderr, а не stdout.

Вероятно, вам нужно будет увидеть код, но, вероятно, это связано с тем, что ваш код записывается в stderr.

  • D-Link Wireless N 150 USB-адаптер на Ubuntu
  • Почему моя камера не появляется в / dev, хотя она работает в dmesg? (Возможная регрессия Ubuntu.)
  • / etc / fstab устанавливает rw файловую систему как доступную только для чтения
  • Настройка беспроводной сети из командной строки
  • Расширение раздела в Ubuntu
  • Установите Backtrack 5 r2 в запущенную настройку LUKS, установленную с помощью ubuntu
  • Метод NGNX HTTP PUT и ошибка 409 Конфликт
  • Как добавить поддержку EBCDIC на debian / ubuntu
  • Почему я не могу изменить имя хоста моего сервера с помощью sudo?
  • Сохранять права доступа cifs к файлу samba
  • Как bash знает, как его вызывают?
  • Interesting Posts

    Arch ntpd / ntpdate не синхронизирует часы

    Списки команд ls скрывают файлы

    Выполняется ли задание, запланированное в crontab, даже когда я выхожу из системы?

    странное поведение vi на OSX Debian ssh terminal

    Как я могу понять, что потребляет память?

    Правило Удева позволяет различать беспроводные и проводные интерфейсы

    Источник против. почему различное поведение?

    Можно ли использовать несколько ветвей одной и той же библиотеки для создания нескольких программных модулей, для которых требуется разная версия этой библиотеки?

    Отключить не потребуется -h

    systemctl mongod вышел после

    Переименование нескольких каталогов

    Почему procmail не запускается?

    Клавиши-модификаторы не могут быть сопоставлены с обычными клавишами на клавиатуре USB с udev

    Запуск сценария Python в фоновом режиме при загрузке

    Мониторинг процессов с использованием только системных вызовов (без утилит, таких как `top`)

    Linux и Unix - лучшая ОС в мире.