精华内容
下载资源
问答
  • $ make > compile.log 2>&1 首先将标准错误输出也重定向到标准输出中,再将标准输出重定向到 compile.log 这个文件中。这样我们就可以将所有的输出都存储到文件中了。

    $ make > compile.log 2>&1
    首先将标准错误输出也重定向到标准输出中,再将标准输出重定向到 compile.log 这个文件中。这样我们就可以将所有的输出都存储到文件中了。

    展开全文
  • 2为标准错误输出stderr 2>&1 (将标准错误输出 输出 到标准输出) 将标准输出写到文件(正常输出) echo 'hello word' >> ./logs.log 或 echo 'hello word' >> ./logs.log 1>&1 将标准...

    介绍

    • 1为标准输出stdout
    • 2为标准错误输出stderr
    • 2>&1 (将标准错误输出 输出 到标准输出)

    将标准输出写到文件(正常输出)

    echo 'hello word' >> ./logs.log
    或
    echo 'hello word' >> ./logs.log 1>&1
    

    将标准错误输出写到文件(报错及警告)

    echo 'hello word' >> ./logs.log 2>&1
    
    展开全文
  • 标准输出,标准错误输出

    千次阅读 2013-07-16 10:22:23
    标准输出,标准错误输出以及重定向输出。  (2012-07-24 14:12:46) 转载▼ 标签:  杂谈      Linux Shell 环境中支持输入输出重定向,用符号""来表示。0、1和2分别表示...

    标准输出,标准错误输出以及重定向输出。

     (2012-07-24 14:12:46)
    标签: 

    杂谈

     

     

        Linux Shell 环境中支持输入输出重定向,用符号"<"和">"来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中。

        同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现。
        Linux下还有一个非凡的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
        假如想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如:
        # ls 1>/dev/null 2>/dev/null
        还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:
        # ls >/dev/null 2>&1
        注重:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静静静:-)
        另外 :
        make >& make_log
        意思是把标准输出和错误输出都重定向, make>out 只重定向标准输出!!!!!
        >log 表示把标准输出重新定向到文件log中
        >& log 表示把标准输出和错误输出都定向到文件log中,相当于 >log 2>&1
     
        错误输出应该被写至标准错误(stderr),缺省情况下标准错误同样也是终端(也就是用户的屏幕)
     
        如果已将标准输出重定向至某一位置,也可以将标准错误重定向至同一位置。例如:
    $ command 2>&1

        在这个例子中,符号“2>&1”表示“将标准错误发送至标准输出被重定向的任何位置”,因此错误和正常的消息都将在屏幕上显示。当 然,这是多余的,因为下面简单的调用  

    $ command

       将做同样的事。在标准输出已被重定向至其它源,而您希望在同一命令行上将标准错误也写至同一目的地时,该特性就非常有用。例如:

    $ command >output_file 2>&1

       在这个例子中,已首先将标准输出重定向至 output_file;因此“2>&1”将使标准错误也被重定向至 output_file。

        原来是这个意思啊!!!才明白!!够费事的!

    展开全文
  • 捕获标准输出及标准错误输出 默认 stdout/stderr/stdin 捕获行为 在测试执行期间,程序中的标准输出/标准错误输出都会被捕获到。 如果测试或setup方法执行失败时,会在报错追溯信息中查看到程序中的标准输出及标准错误...

    捕获标准输出及标准错误输出

    默认 stdout/stderr/stdin 捕获行为

    在测试执行期间,程序中的标准输出/标准错误输出都会被捕获到。 如果测试或setup方法执行失败时,会在报错追溯信息中查看到程序中的标准输出及标准错误输出。(可以通过--show-capture命令行选项配置是否捕获程序中的标准输出/标准错误输出)。

    此外,stdin被设置为“null”对象,测试运行过程中无法从中读取数据,因为在运行自动化测试时很少需要等待交互式输入。

    捕获默认是通过拦截对低优先级文件描述符的写入来完成的。 这允许捕获简单print语句的输出以及测试启动的子进程的输出。

    设置捕获方法或禁用捕获

    pytest可以通过两种方式捕获输出:

    • 文件描述符(FD)级别捕获(默认):将捕获进入操作系统文件描述符1和2的所有写入。
    • sys级别捕获:仅捕获Python文件sys.stdoutsys.stderr。 不执行对文件描述符的写入捕获。

    你可以在命令行中指定不同的参数来使用不同的捕获机制:

    pytest -s            # 禁止捕获所有输出
    pytest --capture=sys # 使用in-mem文件代替sys.stdout/stderr with 
    pytest --capture=fd  # 同时将filedescriptors 1和2指向临时文件

    调试中使用print语句

    默认捕获stdout / stderr输出的一个主要好处是可以使用print语句进行调试:

    # test_module.py文件内容
    
    def setup_function(function):
        print("setting up %s" % function)
    
    def test_func1():
        assert True
    
    def test_func2():
        assert False

    运行此模块将只捕获失败用例相关的print信息,而不显示成功用例的print信息:

    $ pytest
    =========================== test session starts ============================
    platform linux -- Python 3.x.y,pytest-4.x.y,py-1.x.y,pluggy-0.x.y
    rootdir: $REGENDOC_TMPDIR,inifile:
    collected 2 items
    
    test_module.py .F                                                    [100%]
    
    ================================= FAILURES =================================
    ________________________________ test_func2 ________________________________
    
        def test_func2():
    >       assert False
    E       assert False
    
    test_module.py:9: AssertionError
    -------------------------- Captured stdout setup ---------------------------
    setting up <function test_func2 at 0xdeadbeef>
    ==================== 1 failed,1 passed in 0.12 seconds ====================

    在测试用例中使用的捕获的输出

    capsys,capsysbinary,capfdcapfdbinary fixture允许访问在测试执行期间创建的stdout / stderr输出。 下面是一个测试函数示例,它执行一些与输出相关的检查:

    def test_myoutput(capsys):  # or use "capfd" for fd-level
        print("hello")
        sys.stderr.write("world\n")
        captured = capsys.readouterr()
        assert captured.out == "hello\n"
        assert captured.err == "world\n"
        print("next")
        captured = capsys.readouterr()
        assert captured.out == "next\n"

    readouterr()调用时首先对输出流建立快照 - 并继续捕获输出,然后在该测试用例执行完成后,恢复原始输出流。而通过使用capsys可以避免在执行每个测试用例时都进行一次设置/重置输出流,并且还可以与pytest每次测试用例执行时捕获的输出信息进行交互。

    如果要在filedescriptor级别捕获,可以使用capfd fixture,它提供完全相同的接口,但也允许捕获直接写入操作系统级输出流(FD1和FD2)的库或子进程的输出流中。

    3.3版本新函数
    readouterr的返回值更改为具有两个属性outerrnamedtuple

    3.3版本新函数
    如果测试中的代码写入了非文本数据,则可以使用capsysbinary fixture来捕获它,而后者会从readouterr方法返回字节。 capfsysbinary fixture目前仅在Python 3中可用。

    3.0版本新函数
    要暂时禁用测试中的捕获,capsyscapfd都有一个disabled()方法,可以用作上下文管理器,禁用with块内的捕获:

    def test_disabling_capturing(capsys):
        print("输出被捕获到了")
        with capsys.disabled():
            print("输出未捕获到,直接使用sys.stdout标准输出")
        print("这个输出也被捕获到了")

    转载于:https://www.cnblogs.com/superhin/p/11461779.html

    展开全文
  • tcsh重定向标准输出和标准错误输出

    千次阅读 2015-08-20 15:53:39
    分别重定向tcsh里面的标准输出和标准错误输出
  • 重定向标准错误输出

    2013-07-15 00:27:19
    8.2.3 重定向标准错误输出 第5章介绍了标准输出的概念,并解释了如何重定向命令的标准输出。除了标准输出之外,命令还可以将输出发送到标准错误输出。命令将错误消息发送到标准错误输出,这样就可以避免与发送到...
  • # 先将标准错误输出2 指向标准输出1, # 而此时标准输出1 指向的是控制台,所以标准错误输出2 指向的也是控制台, # 之后,将标准输出1 指向文件/tmp/t.txt,但标准错误输出2 仍指向控制台。 ls non_exists 2>...
  • 当linux执行一个程序的时候,会自动打开三个流,标准输入*(standard input),标准输出(standard output),标准错误输出(standard error)*,比如在打开命令行时,默认情况下,命令行的标准输入连接到键盘,标准输出和...
  • 启动storm ui时,将日志错误输出重定向到标准输出中 ./storm ui &gt; /dev/null 2&gt;&amp;1 &...2:标准错误输出;2&gt;&amp;1 的意思就是将标准错误重定向到标准输出 ...
  • 我看 go 的 fmt 包中没有输出到标准错误输出的库函数,是没有相关的库函数吗? 答案是: fmt.Fprint(os.Stderr, "to stderr\n") fmt.Fprintf(os.Stderr, "v=%v\n", "to stderr") 吐槽: 为什么 CSDN 的问答...
  • linux 标准错误输出

    2012-10-09 10:35:48
    与处理标准输出一样,默认情况下,shell将命令的标准错误输出发送到屏幕上。除非重定向标准输出和标准错误输出中的某一个,否则不能区分命令的输出到底是标准输出还是标准错误输出。 文件描述符是程序发送输出和...
  • 如何重定向标准错误输出到标准输出?如何把标准错误输出输出到一个文件? Bash提供了I/O重定向工具,有3个缺省的文件(标准输出流): stdin - 用来获取输入,比如键盘、文件重定向 stdout - 输出数据,缺省打印到...
  • 标准输入输出流以及标准错误输出流的基本使用: System.out是一个特殊的 PrintStream "标准"输出流==》 输出结果到控制台System.err是一个特殊的 PrintStream "标准"错误输出流==》输出到控制台System.in是一个...
  • sys模块,标准输入,标准输出和标准错误输出 1、标准输入sys.stdin:对应的操作是input sys.stdin.readline():只输入(获取)一行,sys.stdin.readline()会将标准输入全部获取,包括末尾的'\n',所以一般会在末尾...
  • 需求描述:  今天在写crontab,里面有标准输出和错误输出,之前使用的是 > /dev/null 2>...1.原crontab定时任务,分别对标准输出和标准错误输出进行定向 [root@testvm02 mail]# crontab -l */1 * * ...
  • 重定向标准输入输出流以及标准错误输出流的重定向:(ex:System.out 把数据输出到控制台,通过重定向可以改变输出的目的地) System中提供对应的重定向的方法:static void setOut(PrintStream out):重新分配...
  • 相关概念 默认情况下,总是有三个文件处于打开状态 ...3. 标准错误(也是输出到屏幕) 对应文件描述符2 常用方法 >/dev/null 2>&1 实际上,应该等同于这样:1 > /dev/null 2 > /dev/null ,默认情...
  • 1、在bash中标准输出可以用1来表示;通常来说这个1可以省略;...2、在bash中标准错误输出可以用2来表示。 例子: test.py 内容如下: #!/bin/env python3.5 import sys if __name__=="__main__": sy...
  • 1.Linux常用的有: ...其中:标准输出指的是『命令运行所回传的正确的信息』,而标准错误输出可理解为『命令运行失败后,所回传的错误信息』   2.如果想让信息都不展示,则将输入到黑洞垃圾桶/d
  • C和C++中的标准输出和标准错误输出

    千次阅读 2016-06-05 23:53:10
    C中的标准输出和标准错误输出是stdout和stderr两个"File *"类型的文件指针。 fprintf(stdout,"stdout: hello world\n"); fprintf(stderr,"stderr: hello world\n"); C++相关 C++中的则是cout和cerr两个output ...
  • 一般来说一个程序的输出可分为标准输出和标准错误输出,这个已经众人皆知。但打印到屏幕上的输出一定是标准输出吗?答案是否定的!默认打印到屏幕上的输出不一定是标准输出。 举一个最常用的例子。我想通过nginx -v...
  • 重定向标准错误输出 重定向恢复 总结 在前文中,可以知道,文件描述符实际上是指向文件表项的指针数组索引,也就相当于每个文件描述符都对应一个文件表项,最终对应一个文件,而文件描述符重定向,则是让一个...
  • shell如何将标准错误输出重定向为标准输出 经常可以在一些脚本,尤其是在crontab调用时发现如下形式的命令调用 /tmp/test.sh > /tmp/test.log 2>&1 前半部分/tmp/test.sh > /tmp/test.log很容易理解,...
  • 重定向标准错误输出 文件描述符 当运行一个程序,运行该程序的进程打开三个文件描述符,分别是:0(标准输入)、1(标准输出)、2(标准错误输出)。 重定向输出 ">" 是 1> 的简写 重定向输入 "<...
  • 当执行一个程序时,运行该程序的进程打开了3个文件描述符,分别是:0(标准输入)、1(标准输出)和2(标准错误输出)。重定向输出符号(>)是1>的简写,它通知shell重定向标准输...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,295
精华内容 4,118
关键字:

标准错误输出