Перенаправить вывод на полпути через скрипт и восстановить позже

Я хотел бы повторно перенаправить stdout на полпути через скрипт. Как я могу это сделать в Zsh?

# Do something # ... # Redirect stdout to a file (eg foo.txt) for x in *; print $x; done # Re-direct stdout back to default # Do something else # ... 

  • Как установить bash для запуска * .exe с моно?
  • Различные оболочки для интерактивной и неинтерактивной работы
  • Распределение порядка стека каталога в zsh
  • Удалить предложение автозавершения zsh
  • Список X случайных файлов из каталога
  • Вызов функции завершения zsh и получение ее результатов
  • Функция Zsh с su и echo
  • Zsh, нечувствительное между `_` и` -`
  • 2 Solutions collect form web for “Перенаправить вывод на полпути через скрипт и восстановить позже”

    Используйте exec builtin с перенаправлением, но нет команды перенаправлять дескрипторы файла оболочки. Если вы хотите восстановить исходный пункт назначения, вам придется сохранить его в другом дескрипторе.

     exec 3>&1 >foo.txt for x in *; do print $x done exec >&3 3>&- 

    Когда область перенаправления является частью кода, проще перенаправить перенаправление вокруг этой части кода.

     for x in *; do print $x done >foo.txt 

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

     { for x in *; do print $x done; echo 'one more line' } >foo.txt 

    Эти конструкции существуют во всех оболочках типа Bourne / POSIX, а не только в zsh.

    Вы можете перенаправить вывод for достаточно легко:

     for foo in list; do somethingto $foo done > /path/to/forloop_log.txt 

    Это будет только перенаправлять вывод цикла for и не влиять на вывод до или после него.

    Вы можете сделать то же самое для почти любой команды или набора команд, используя подоболочку:

     dosomething ( dosomethingelse; doyetanotherthing; ) > /path/to/special.log dostillanotherthing 
    Interesting Posts

    Перенос прав доступа от root к постоянному пользователю

    Некоторые сочетания клавиш не работают в Compiz

    как сделать непривилегированный скрипт сбросить даже привилегии, которые он имеет в файле

    Изменение требований к паролям в Oracle Solaris 11.2

    Как установить tz и дату без перезапуска в Debian Squeeze?

    Использовать eth0 и eth1 для разных подсетей и присвоить имя хоста интерфейсу?

    Можете ли вы установить и загрузить linux из указанной папки?

    Установите Cython с python3 в Docker

    Полностью перезапустите Bash

    Идентичная ситуация разные результаты! не может смотреть youtube через прокси-сервер

    Зачем ограничивать количество инодов, к которым пользователь может получить доступ?

    Ошибка оборудования в syslog после игр

    Есть ли версия команды «Найти», которая сохраняет свое состояние?

    Как эхо в сценарии оболочки без выполнения результата

    Как настроить черный список для insmod?

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