The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как загнать вывод в файл"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как загнать вывод в файл"
Сообщение от krupskij emailИскать по авторуВ закладки on 20-Июн-03, 18:14  (MSK)
Как загнать вывод программы, которая постоянно гонит вывод на
консоль, в файл. Просто $>progname > exec_log не выходит - получаю
весь вывод на консоли плюс файл exec_log длиной 0. Мне надо заставить
программу сливать в лог весь вывод - ошибки, что она там выдает в процессе
выполнения.

И еще - как в шелловом скрипте проверить наличие нескольких файлов???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как загнать вывод в файл"
Сообщение от LS Искать по авторуВ закладки on 20-Июн-03, 18:53  (MSK)
>Как загнать вывод программы, которая постоянно гонит вывод на
>консоль, в файл. Просто $>progname > exec_log не выходит - получаю
>весь вывод на консоли плюс файл exec_log длиной 0. Мне надо заставить
>

что просил, то и получил.

$>progname >> exec_log 2>&1

>программу сливать в лог весь вывод - ошибки, что она там выдает
>в процессе
>выполнения.
>
>И еще - как в шелловом скрипте проверить наличие нескольких файлов???

для bash

CONDITIONAL EXPRESSIONS
       Conditional expressions are used by the [[  compound  command  and  the
       test  and [ builtin commands to test file attributes and perform string
       and arithmetic comparisons.  Expressions are formed from the  following
       unary  or  binary  primaries.   If any file argument to one of the pri-
       maries is of the form /dev/fd/n, then file descriptor n is checked.  If
       the  file  argument  to  one  of  the  primaries  is one of /dev/stdin,
       /dev/stdout, or /dev/stderr, file descriptor 0, 1, or 2,  respectively,
       is checked.

       -a file
              True if file exists.
       -b file
              True if file exists and is a block special file.
       -c file
              True if file exists and is a character special file.
       -d file
              True if file exists and is a directory.
       -e file
              True if file exists.
       -f file
              True if file exists and is a regular file.
       -g file
              True if file exists and is set-group-id.
       -h file
              True if file exists and is a symbolic link.
       -k file
              True if file exists and its ``sticky'' bit is set.
       -p file
              True if file exists and is a named pipe (FIFO).
       -r file
              True if file exists and is readable.
       -s file
              True if file exists and has a size greater than zero.
       -t fd  True if file descriptor fd is open and refers to a terminal.
       -u file
              True if file exists and its set-user-id bit is set.
       -w file
              True if file exists and is writable.
       -x file True if file exists and is executable.
       -O file
              True if file exists and is owned by the effective user id.
       -G file
              True if file exists and is owned by the effective group id.
       -L file
              True if file exists and is a symbolic link.
       -S file
              True if file exists and is a socket.
       -N file
              True  if  file  exists  and  has been modified since it was last
              read.
       file1 -nt file2
              True if file1 is newer (according  to  modification  date)  than
              file2, or if file1 exists and file2 does not.
       file1 -ot file2
              True  if file1 is older than file2, or if file2 exists and file1
              does not.
       file1 -ef file2
              True if file1 and file2 refer to the same device and inode  num-
              bers.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как загнать вывод в файл"
Сообщение от krupskij emailИскать по авторуВ закладки on 20-Июн-03, 19:27  (MSK)
>>Как загнать вывод программы, которая постоянно гонит вывод на
>>консоль, в файл. Просто $>progname > exec_log не выходит - получаю
>>весь вывод на консоли плюс файл exec_log длиной 0. Мне надо заставить
>что просил, то и получил.
>$>progname >> exec_log 2>&1

Угу. А где найти теоретическое обьяснение по этому поводу ???

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как загнать вывод в файл"
Сообщение от LS Искать по авторуВ закладки on 20-Июн-03, 19:39  (MSK)
>>>Как загнать вывод программы, которая постоянно гонит вывод на
>>>консоль, в файл. Просто $>progname > exec_log не выходит - получаю
>>>весь вывод на консоли плюс файл exec_log длиной 0. Мне надо заставить
>>что просил, то и получил.
>>$>progname >> exec_log 2>&1
>
>Угу. А где найти теоретическое обьяснение по этому поводу ???

"progname> exec_log" - перенаправляет стандартный поток вывода команды (то что у тебя обычно попадает на консоль) в файл exec_log. если такого файла нет, то он создается

"progname>> exec_log" - выполняет аналогичное действие, но если файл существует, то информация дописывается в его конец

"2>&1" - перенаправляет стандартный поток ошибок (2) в стандартный поток вывода (1). а поскольку к этому моменту стандартный вывод у тебя уже перенаправлен в файл, то все сообщения об ошибках посыпятся туда же (иначе бы вылезли на консоль). 1 подразумевается по умолчанию, поэтому "progname>> exec_log" эквивалентно "progname 1>> exec_log"

ищи информацию по операциям перенаправления ввода/вывода

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Как загнать вывод в файл"
Сообщение от LS Искать по авторуВ закладки on 20-Июн-03, 19:42  (MSK)
>
>ищи информацию по операциям перенаправления ввода/вывода

обычно все это есть в man по командной оболочке, которой ты пользуешься

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Как загнать вывод в файл"
Сообщение от Andrey Искать по авторуВ закладки on 24-Июн-03, 14:21  (MSK)
>>
>>ищи информацию по операциям перенаправления ввода/вывода
>
>обычно все это есть в man по командной оболочке, которой ты пользуешься
>

попробуй еще так:
#progname | cat > logfile

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Как загнать вывод в файл"
Сообщение от LS emailИскать по авторуВ закладки on 24-Июн-03, 21:41  (MSK)
>>>
>>>ищи информацию по операциям перенаправления ввода/вывода
>>
>>обычно все это есть в man по командной оболочке, которой ты пользуешься
>>
>
>попробуй еще так:
>#progname | cat > logfile


[syslha@localhost syslha]$ cd ~/temp
[syslha@localhost temp]$ echo "test">111
[syslha@localhost temp]$ cat ./111
test
[syslha@localhost temp]$ cat ./111|cat > ./result
[syslha@localhost temp]$ cat ./result
test
[syslha@localhost temp]$ cat ./xxx|cat > ./result
cat: ./xxx: No such file or directory
[syslha@localhost temp]$ cat ./result
[syslha@localhost temp]$

Вам тот же диагноз - man по шелу

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру