<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: перенаправление stdout для всех команд bash-скрипта</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html</link>
    <description>Здравствуйте.&lt;br&gt;&lt;br&gt;В начале bash-скрипта хочу единожды перенаправить stdout и stderr в отдельные файлы.&lt;br&gt;&lt;br&gt;Сейчас в скрипте много громоздких команд с пайпами и перенаправлениями, и каждую приходится завершать перенаправлением незадействованного потока в соответствующий лог-файл. Нельзя ли для всего скрипта назначить stdout и stderr, чтобы потом всё неперенаправленное сливалось туда?&lt;br&gt;&lt;br&gt;Например :&lt;br&gt;#####################################&lt;br&gt;#!/bin/sh&lt;br&gt;&lt;br&gt;??? STDOUT=&quot;/root/stdout.txt&quot;&lt;br&gt;??? STDERR=&quot;/root/stderr.txt&quot;&lt;br&gt;&lt;br&gt;/bin/ls&lt;br&gt;/bin/nosuchfile&lt;br&gt;#####################################&lt;br&gt;&lt;br&gt;Скрипт при запуске не должен вывести ни строчки. Вывод и ошибки должны быть в файлах.&lt;br&gt;Простейшее решение запускать весь скрипт с перенаправлениями типа&lt;br&gt;./script.sh &amp;gt; /root/stdout.txt 2&amp;gt; /root/stderr.txt&lt;br&gt;мне известно. Хотелось бы обойтись без этого.&lt;br&gt;&lt;br&gt;Как это сделать?&lt;br&gt;</description>

<item>
    <title>перенаправление stdout для всех команд bash-скрипта (Fuzzy)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html#12</link>
    <pubDate>Tue, 09 Sep 2008 13:33:15 GMT</pubDate>
    <description>Это баг. :-)&lt;br&gt;&lt;br&gt;BUGS&lt;br&gt;     Script places everything in the log file, including linefeeds and&lt;br&gt;     backspaces.  This is not what the naive user expects.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>перенаправление stdout для всех команд bash-скрипта (angra)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html#11</link>
    <pubDate>Tue, 09 Sep 2008 12:16:39 GMT</pubDate>
    <description>Перлом :)&lt;br&gt;</description>
</item>

<item>
    <title>перенаправление stdout для всех команд bash-скрипта (Аноним)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html#10</link>
    <pubDate>Tue, 09 Sep 2008 11:42:10 GMT</pubDate>
    <description>&amp;gt;Ещё перенаправить вывод в файлы можна с помощью команды script &lt;br&gt;&lt;br&gt;script дает не лог, а typescript файл, который абсолютно бесполезен. Там навалено каких-то временных меток, а если прога юзает какие-то фичи терминала, то вообще ужас. Да хотя бы если просто &#092;r юзает.&lt;br&gt;Когда в свое время копал, так и не нашел чем этот дебильный typescript преобразовать в нормальный лог.&lt;br&gt;</description>
</item>

<item>
    <title>перенаправление stdout для всех команд bash-скрипта (mikra)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html#9</link>
    <pubDate>Mon, 08 Sep 2008 10:56:09 GMT</pubDate>
    <description>&amp;gt;а я обычно тело скрипта &quot;запираю&quot; в фигурные скобки: &lt;br&gt;&amp;gt;#!/bin/bash &lt;br&gt;&amp;gt;&#123; &lt;br&gt;&amp;gt;  # тута все и происходит &lt;br&gt;&amp;gt;&#125; &amp;gt; /root/stdout.txt 2&amp;gt; /root/stderr.txt&lt;br&gt;&lt;br&gt;О, тоже толково.&lt;br&gt;&lt;br&gt;Спасибо всем за участие и дельные советы :)&lt;br&gt;</description>
</item>

<item>
    <title>перенаправление stdout для всех команд bash-скрипта (madskull)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html#8</link>
    <pubDate>Mon, 08 Sep 2008 05:56:17 GMT</pubDate>
    <description>&amp;gt;Здравствуйте. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;В начале bash-скрипта хочу единожды перенаправить stdout и stderr в отдельные файлы. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&lt;br&gt;а я обычно тело скрипта &quot;запираю&quot; в фигурные скобки:&lt;br&gt;#!/bin/bash&lt;br&gt;&#123;&lt;br&gt;  # тута все и происходит&lt;br&gt;&#125; &amp;gt; /root/stdout.txt 2&amp;gt; /root/stderr.txt&lt;br&gt;</description>
</item>

<item>
    <title>перенаправление для всех команд скрипта (Andrey Mitrofanov)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html#7</link>
    <pubDate>Fri, 05 Sep 2008 12:00:25 GMT</pubDate>
    <description>&amp;gt;Мануал очень небольшой у exec... А обратно вернуть направления потоков? &lt;br&gt;&amp;gt;exec &amp;gt; /dev/tty 2&amp;gt; /dev/tty&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Правильно? &lt;br&gt;&lt;br&gt;Правильно:&lt;br&gt;&lt;br&gt;exec 6&amp;lt;&amp;0          # Link file descriptor #6 with stdin.&lt;br&gt;                   # Saves stdin.&lt;br&gt;exec &amp;lt; data&amp;#8722;file   # stdin replaced by file &quot;data&amp;#8722;file&quot;&lt;br&gt;#&#091;---8&amp;lt;---&#093;&lt;br&gt;echo; echo; echo&lt;br&gt;exec 0&amp;lt;&amp;6 6&amp;lt;&amp;&amp;#8722;&lt;br&gt;# Now restore stdin from fd #6, where it had been saved,&lt;br&gt;#+ and close fd #6 ( 6&amp;lt;&amp;&amp;#8722; ) to free it for other processes to use.&lt;br&gt;#&lt;br&gt;# &amp;lt;&amp;6 6&amp;lt;&amp;&amp;#8722;    also works.&lt;br&gt;&lt;br&gt;Есть такое слово - ABS, Advanced Bash-Scripting Guide...&lt;br&gt;&lt;br&gt;&#091;B&#093;&amp;gt;&amp;gt;&#091;/B&#093;http://www.opennet.ru/docs/RUS/bash_scripting_guide/c11620.html#AEN11702&lt;br&gt;</description>
</item>

<item>
    <title>перенаправление для всех команд скрипта (mikra)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html#6</link>
    <pubDate>Fri, 05 Sep 2008 11:21:45 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Мануал очень небольшой у exec... А обратно вернуть направления потоков? &lt;br&gt;&amp;gt;&amp;gt;exec &amp;gt; /dev/tty 2&amp;gt; /dev/tty&lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Правильно? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Не знаю, как правильно, но следуя вашей логике я бы перенаправлял в &lt;br&gt;&amp;gt;/dev/stdout и /dev/stderr или просто 1 и 2 &lt;br&gt;&lt;br&gt;/dev/stdout и /dev/stderr перенаправлены в файл. Вывод в них не попадает на экран. На экран ведёт только /dev/tty&lt;br&gt;&lt;br&gt;Иными словами это работает, я уточняю можно ли так делать или есть ньюансы.&lt;br&gt;</description>
</item>

<item>
    <title>перенаправление для всех команд скрипта (phpcoder)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html#5</link>
    <pubDate>Fri, 05 Sep 2008 11:13:23 GMT</pubDate>
    <description>&amp;gt;Мануал очень небольшой у exec... А обратно вернуть направления потоков? &lt;br&gt;&amp;gt;exec &amp;gt; /dev/tty 2&amp;gt; /dev/tty&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Правильно? &lt;br&gt;&lt;br&gt;Не знаю, как правильно, но следуя вашей логике я бы перенаправлял в /dev/stdout и /dev/stderr или просто 1 и 2&lt;br&gt;</description>
</item>

<item>
    <title>перенаправление stdout для всех команд bash-скрипта (mikra)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/7581.html#4</link>
    <pubDate>Fri, 05 Sep 2008 10:29:11 GMT</pubDate>
    <description>&amp;gt;Ещё перенаправить вывод в файлы можна с помощью команды script &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;man 1 script &lt;br&gt;&lt;br&gt;Спасибо, пригодится.&lt;br&gt;Но, кажется, для моего случая это скорее костыли... А хочется чтоб красиво :)&lt;br&gt;</description>
</item>

</channel>
</rss>
