相关疑难解决方法(0)

如何使用Bash将stdout和stderr重定向并附加到文件中?

要将stdout重定向到Bash中的截断文件,我知道要使用:

cmd > file.txt
Run Code Online (Sandbox Code Playgroud)

要在Bash中重定向stdout,追加到文件,我知道要使用:

cmd >> file.txt
Run Code Online (Sandbox Code Playgroud)

要将stdoutstderr重定向到截断的文件,我知道要使用:

cmd &> file.txt
Run Code Online (Sandbox Code Playgroud)

如何重定向附加到文件的stdoutstderrcmd &>> file.txt不适合我.

linux bash redirect pipe stream

1440
推荐指数
8
解决办法
70万
查看次数

在管道上使用"tee"时如何将stderr写入文件?

我知道如何使用tee写输出(STDOUT中)aaa.shbbb.out,同时还在终端显示它:

./aaa.sh | tee bbb.out
Run Code Online (Sandbox Code Playgroud)

我现在如何写STDERR一个名为的文件ccc.out,同时还显示它?

unix linux bash

507
推荐指数
10
解决办法
24万
查看次数

如何将stdout和stderr重定向到文件

我正在运行一个bash脚本,它创建一个日志文件来执行命令

我使用以下内容

Command1 >> log_file
Command2 >> log_file
Run Code Online (Sandbox Code Playgroud)

这仅发送标准输出,而不是终端上显示的标准错误.

我可以记录记录到文件的stderr和stdout吗?

bash stdout stderr

277
推荐指数
4
解决办法
19万
查看次数

用bash管道stdout和stderr?

似乎较新版本的bash具有&>运算符,如果我理解正确的话,将stdout和stderr重定向到一个文件(&>>改为附加到文件,就像Adrian澄清的那样).

实现相同目标的最简单方法是什么,而是管道到另一个命令?

例如,在这一行:

cmd-doesnt-respect-difference-between-stdout-and-stderr | grep -i SomeError
Run Code Online (Sandbox Code Playgroud)

我希望grep能够匹配stdout和stderr中的内容(实际上,将它们组合成一个流).

注意:这个问题是询问管道,而不是重定向 - 因此它不是它当前标记为重复的问题的副本.

bash stdout stderr piping

141
推荐指数
2
解决办法
8万
查看次数

什么"|&"在bash中意味着什么?

例如

echo "aaa" |& cat 
Run Code Online (Sandbox Code Playgroud)

|&这里的意思是什么?

有网站建议查找那些?由于大多数搜索引擎不支持搜索特殊字符.

bash

37
推荐指数
3
解决办法
7646
查看次数

重定向cron作业的输出

我在crontab中有以下条目:

0 5 * * * /bin/bash -l -c 'export RAILS_ENV=my_env; cd /my_folder; ./script/my_script.rb 2>&1 > ./log/my_log.log'
Run Code Online (Sandbox Code Playgroud)

这样做的结果是,我收到的输出./script/my_script.rb./log/my_log.log.这种行为是期望的.奇怪的是,我也在本地邮件中收到输出.我想知道如何通过邮件捕获我的脚本的输出.由于我将输出重定向到日志文件,我希望我的cron作业没有输出,因此当cron作业运行时我不会收到任何邮件.任何人都可以了解邮件如何获得输出./script/my_script.rb

unix bash cron crontab

15
推荐指数
1
解决办法
4万
查看次数

Python Nose:使用Multiprocess Plugin将测试结果记录到文件中

我试图将我的测试输出记录到文件以及同时运行它们.为此,我试图使用多进程插件和xunit插件.

我知道他们不能一起工作,xunit没有记录任何东西,因为mutiprocess不直接发送输出.

https://github.com/nose-devs/nose/issues/2

我正在寻找的是允许我将输出写入文件的任何替代方案.原因是我正在运行Selenium Tests,每次我收到错误时,堆栈跟踪都非常大,以至于stdout基本上已经完全填满了.减轻的东西也可能有所帮助,关于如何配置日志输出的selenium文档非常缺乏.

我还尝试了一个非常基本的stdout重定向:

#nosetests > file.txt
Run Code Online (Sandbox Code Playgroud)

但那也不起作用.

python logging nose multiprocessing

12
推荐指数
1
解决办法
5981
查看次数

Matplotlib 的 show 函数触发不需要的输出

每当我通过 Python v3.10.4 执行任何 Python 代码(无论是否在 Visual Studio Code v1.74.2 中进行调试)时,除了代码的正常输出之外,我还会在“调试控制台”窗口中获得如下所示的输出。否则,我的所有 Python 程序此时都可以正常工作并按预期运行。

\n
1   HIToolbox                           0x00007ff81116c0c2 _ZN15MenuBarInstance22RemoveAutoShowObserverEv + 30\n2   HIToolbox                           0x00007ff8111837e3 SetMenuBarObscured + 115\n3   HIToolbox                           0x00007ff81118a29e _ZN13HIApplication11FrontUILostEv + 34\n4   HIToolbox                           0x00007ff811183622 _ZN13HIApplication15HandleActivatedEP14OpaqueEventRefhP15OpaqueWindowPtrh + 508\n5   HIToolbox                           0x00007ff81117d950 _ZN13HIApplication13EventObserverEjP14OpaqueEventRefPv + 182\n6   HIToolbox                           0x00007ff811145bd2 _NotifyEventLoopObservers + 153\n7   HIToolbox                           0x00007ff81117d3e6 AcquireEventFromQueue + 494\n8   HIToolbox                           0x00007ff81116c5a4 ReceiveNextEventCommon + 725\n9   HIToolbox                           0x00007ff81116c2b3 _BlockUntilNextEventMatchingListInModeWithFilter + 70\n10  AppKit                              0x00007ff80a973f33 _DPSNextEvent + 909\n11  AppKit                              0x00007ff80a972db4 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1219\n12  AppKit                              0x00007ff80a9653f7 -[NSApplication run] + 586\n13  _macosx.cpython-310-darwin.so       0x0000000110407e22 show …
Run Code Online (Sandbox Code Playgroud)

python macos matplotlib visual-studio-code vscode-debugger

11
推荐指数
2
解决办法
809
查看次数

在bash中重定向stdout和stderr的正确方法是什么?

这是我正在努力完成的具体任务.zsh的行为方式我喜欢

$ zsh
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
clang
$ which doesntexist > /dev/null 2&>1 && echo doesntexist || echo gcc
gcc
Run Code Online (Sandbox Code Playgroud)

但是,在bash中:

$ bash
$ which clang > /dev/null 2&>1 && echo clang || echo gcc
gcc
Run Code Online (Sandbox Code Playgroud)

这是一般情况:

$ which clang > /dev/null 2&>1; echo $?
1
$ which clang; echo $?
/usr/bin/clang
0
Run Code Online (Sandbox Code Playgroud)

我如何重定向输出有问题.什么是正确的方法?

bash zsh

10
推荐指数
1
解决办法
8668
查看次数

如何将从 Google AddressSanitizer 引发的错误记录到日志文件中

默认情况下,AddressSanitizer 会将所有错误抛出到 shell 本身,因此我尝试使用以下命令运行我的 ASAN 构建;

>MCTester_ASAN>asan.log

==15619==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x61400000f9d0 at pc 0x46cff2 bp 0x7fffc062cb90 sp 0x7fffc062cb88
    #0 0x46cff1 in heapOutOfBoundWrite() /home/MemTest/main.cpp:49
    #1 0x46d68f in main /home/MemTest/main.cpp:116
    #2 0x7fbd3365bc35 in __libc_start_main (/lib64/libc.so.6+0x1ec35)
    #3 0x40a0f8 (/x01/exd10/bin/MCTester_ASAN+0x40a0f8)

ASAN:SIGSEGV
==15619==ERROR: AddressSanitizer: SEGV on unknown address 0x00000044ff97 (pc 0x00000046cff2 sp 0x7fffc062cba0 bp 0x7fffc062cbb0 T0)
    #0 0x46cff1 in heapOutOfBoundWrite() /home/MemTest/main.cpp:49
    #1 0x46d68f in main /home/MemTest/main.cpp:116
    #2 0x7fbd3365bc35 in __libc_start_main (/lib64/libc.so.6+0x1ec35)
    #3 0x40a0f8 (/x01/exd10/bin/MCTester_ASAN+0x40a0f8)

AddressSanitizer can not provide additional info.
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

但我仍然将输出发送到 …

c++ address-sanitizer

7
推荐指数
2
解决办法
6857
查看次数