На прикладі PERL ви можете виводити повідомлення в будь-яки з цих каналі, помістивши відовідну назву відразу після команди print:
# cat print.pl
#!/usr/local/bin/perl
print STDOUT "I am ready.\n";
print STDERR "Error, I am not ready.\n";
#!/usr/local/bin/perl
print STDOUT "I am ready.\n";
print STDERR "Error, I am not ready.\n";
Якщо ви виконаєте файл з цим кодом, Ви отримаєте
# perl print.pl
I am ready.
Error, I am not ready.
I am ready.
Error, I am not ready.
Перенаправимо станадртний вивод (STDOUT):
# perl print.pl > logger.stdout
Error, I am not ready.
Error, I am not ready.
Та ось так подивимость, що ми отримали в файлі logger
# cat ./logger.stdout
I am ready.
I am ready.
Щоб перенаправити станадртний вивод помилок (STDERR):
# perl ./print.pl 2> logger.stderr
I am ready.
I am ready.
Теперь заглягнемо в logger.stderr:
# cat logger.stderr
Error, I am not ready.
Error, I am not ready.
Та спробуєм перенаправити все в один файл:
# perl ./print.pl > logger 2>&1
Як і очікував, отримуєм
# cat logger
Error, I am not ready.
I am ready.
Error, I am not ready.
I am ready.
Ще можливо розділити це ось так:
# perl ./print.pl > logger.out 2> logger.err
# cat logger.out
I am ready.
# cat logger.err
Error, I am not ready.
# cat logger.out
I am ready.
# cat logger.err
Error, I am not ready.
Все добре, але наприклад це непрацює в csh. Та ось Вам робочій приклад:
# ( perl print.pl > logger.1 ) >& logger.2
# cat logger.1
I am ready.
# cat logger.2
Error, I am not ready.
# cat logger.1
I am ready.
# cat logger.2
Error, I am not ready.
возможно у Вас отключен javascript, если включен - просто обновите страницу