在perl的脚本中,我有以下内容:
print STDERR "Access error"
Run Code Online (Sandbox Code Playgroud)
我想知道这条消息的打印位置,但我不知道如何在LInux中看到Standar错误输出.
Gil*_*not 12
标准(STDOUT)和错误输出(STDERR)都显示在(伪)终端上.
如果要跟踪输出:
错误日志:
./script.pl 2> err.log
Run Code Online (Sandbox Code Playgroud)
标准输出日志:
./script.pl > out.log
Run Code Online (Sandbox Code Playgroud)
双方STDERR并STDOUT在同一文件中:
./script.pl > out.log 2>&1
Run Code Online (Sandbox Code Playgroud)
或者使用bash:
./script.pl &> out.log
Run Code Online (Sandbox Code Playgroud)
一个很好的教程
它打印到您的环境设置标准错误的任何位置.
如果从控制台运行它,它将与标准输出混合并显示在控制台上(如果重定向STDOUT,则不会重定向,您必须单独重定向).
如果你是在Apache下从CGI运行它,那么它将被放入你的error.log文件中(Apache配置为保存它的地方).
如果你是从别的地方运行它......好一个详尽的清单是超出范围为#1,所以你应该尝试问一个更具体的问题;)
它可能被定向到控制台的示例:
david@raston err $ cat err.pl
#!/usr/bin/env perl
use strict;
use warnings;
use v5.16;
say "out";
say STDERR "error";
~/tmp/err :
david@raston err $ ./err.pl
out
error
~/tmp/err :
david@raston err $ ./err.pl > stdout
error
~/tmp/err :
david@raston err $ ./err.pl 2> stderr
out
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39914 次 |
| 最近记录: |