stderr

为什么附加到日志文件的是 2>&1 而不是 2>>&1
stderr

为什么附加到日志文件的是 2>&1 而不是 2>>&1

我将 STDOUT 和 STDERR 重定向到单个文件,并且文件一直在增长,因此我总是使用“附加”重定向;这是>> 我的命令是command >> logfile 2>&1 并且它有效。 但是 STDERR 重定向只有一个>,我用它来“创建”文件,删除前一个文件,如下所示command > outlog 2> errlog 为什么在这种情况下它不会删除日志文件? ...

Admin

即使退出代码为 0,Azure 管道步骤也会失败
stderr

即使退出代码为 0,Azure 管道步骤也会失败

我已经设置了一个 azure-pipeline yaml 配置,其中包含一个运行 5 个脚本的管道作业。每个脚本的配置都将标志failOnStderr设置为true。脚本成功运行,但阶段失败,输出如下: ##[error]Bash wrote one or more lines to the standard error stream. 我启用了system.debug详细功能并获得了进一步的详细信息: ##[debug]Exit code 0 received from tool '/bin/bash' ##[debug]STDIO streams...

Admin

将 stderr 传送到文件和屏幕,而不将 stderr 重定向到 stdout
stderr

将 stderr 传送到文件和屏幕,而不将 stderr 重定向到 stdout

在 bash 脚本中,我想在将 stderr 传输到文件和终端的同时执行命令。但是,我希望 stderr 保留在“2”文件描述符上,以便我可以从调用此 bash 脚本的外部进程解析它。 到目前为止,我见过的所有解决方案都涉及将 stdout 与 stderr 交换,然后发送到另一个文件,例如: find /var/log 3>&1 1>&2 2>&3 | foo.file 如果我从另一个脚本调用此脚本,stderr 将转到 stdout,stdout 将转到 stderr,这对我来说不好。我尝试再次交换它们,...

Admin

如何使用对话框重定向 bash 脚本中的 stdout 和 stderr?
stderr

如何使用对话框重定向 bash 脚本中的 stdout 和 stderr?

对于将 stdout 和 stderr 重定向到文件的单个脚本,如下所示: ./myscript.sh 2>&1 | tee -a out_file 运行正常。当我尝试以同样的方式运行包含使用对话命令(并调用其他脚本) ./main.sh 2>&1 | tee -a out_file 由于这些框,out_file 包含不需要的字符。例如: #!/bin/bash # myscript.sh dialog --title "Title" \ --msgbox "Message Box" \ 30 120 date ...

Admin

ssmtp [email protected] < file.log 不起作用。正文为空白
stderr

ssmtp [email protected] < file.log 不起作用。正文为空白

我正在运行一个简单的 rsync 脚本,其中我将 stdout 和 stderr 记录到两个不同的文件 rsync_stdout.log 和 rsync_stderr.log。 当我尝试使用以下命令通过电子邮件发送 rsync_stderr.log 的内容时: echo $(cat rsync_stderr.log) | ssmtp [email&nbsp;protected] 我收到一封空白的电子邮件正文,但是当我这样做时: echo $(cat rsync_stdout.log) | ssmtp [email&nbsp;protected] ...

Admin

如何重定向${var:?”foo"} 语法的 stderr?
stderr

如何重定向${var:?”foo"} 语法的 stderr?

我正在使用 bash,并且如果未使用以下命令设置变量,则尝试将消息打印到标准错误: echo ${var:?"This var is not set"} 现在,我想将该错误消息重定向到文件。我尝试了以下操作,但没有成功: echo ${var:?"This var is not set"} &gt; testfile 以下方法也不起作用: echo ${var:?"This var is not set"} 2&gt; testfile 那么,我如何才能将该生成的消息定向到文件? ...

Admin

如何将 python 的输出重定向到文件
stderr

如何将 python 的输出重定向到文件

我想将控制台的所有输出(stdout 和 stderr)重定向到文本文件。我执行以下步骤: 打开cmd.exe 启动命令: “python.exe”&gt;“文件.txt” 之后,我正在等待文件中的 python 输出,但它仍然在控制台中。我做错了什么? ...

Admin

将 STDERR 和 STDOUT 重定向到每行带有时间戳的文件
stderr

将 STDERR 和 STDOUT 重定向到每行带有时间戳的文件

在我的 CentOS 上,我尝试执行一个包含无限循环的 php 脚本,以便在其中执行一些奇特的操作。无限循环可能不是大多数情况下的准确解决方案,但对于我的测试用例来说,它是准确的解决方案。如果此循环中发生错误,则错误将写入输出文件(stdout 中的所有内容也是如此)。这就是我目前所做的。 exec php testfile.php &gt;&gt; output.log 2&gt;&amp;1 这按预期工作,但我想知道 stdout 或 stderr 何时将某些内容写入文件,因此我需要在每一行上添加某种时间戳。 我已经尝试过类似这但是,如果我按照那...

Admin

修改终端 STDOUT/STDERR 以根据 REGEX 更改线条颜色
stderr

修改终端 STDOUT/STDERR 以根据 REGEX 更改线条颜色

这可能吗?我希望在运行单元测试(Python)时突出显示与当前项目目录路径匹配的任何行,而其他输出保持不变。通常这些是我正在搜索的行,因此对于调试目的非常有用。模式匹配部分应该没问题,我只是不知道如何修改输出(测试正在使用 Nose 运行) ...

Admin

shell 标准流重定向顺序 OR 2>&1 1>/dev/null vs 1>/dev/null 2>&1
stderr

shell 标准流重定向顺序 OR 2>&1 1>/dev/null vs 1>/dev/null 2>&1

有人能解释一下区别吗?其中一些被视为最佳实践吗?如果我记得正确的话,我以某种方式读到这1&gt;/dev/null应该先于这个:2&gt;&amp;1 ls -al /doesNotExists 2&gt;&amp;1 1&gt;/dev/null ls -al /doesNotExists 1&gt;/dev/null 2&gt;&amp;1 ls -al /doesNotExists 1&gt;&amp;2 2&gt;/dev/null ls -al /doesNotExists 2&gt;/dev/null 1&gt;&amp;2 ls -la ...

Admin

Linux shell:如何向 stderr 消息添加前缀字符串?
stderr

Linux shell:如何向 stderr 消息添加前缀字符串?

我在后台同时运行多个任务。 command_a | tee &gt; command_a.log &amp; command_b | tee &gt; command_b.log &amp; 如果一切正常,那么消息将被保存到日志文件中。 如果出现错误,它会在屏幕上打印错误。 但是 command_a 和 command_b 非常相似,很难分辨哪个错误消息是由哪个命令生成的。 我可以在错误消息中添加前缀字符串吗,例如: command_a: error 123 command_b: error 456 command_a: error 256 c...

Admin

如何使用 tee 管道重定向 python3 脚本的 stderr?
stderr

如何使用 tee 管道重定向 python3 脚本的 stderr?

我是 Debian 和 RedHat 用户。我想logging从Python3脚本重定向 stderr(模块)。该脚本输出很多内容,我想要捕获的部分可以使用以下方法获取: python3 ./script.py --input ./*.txt --verbose 2&gt;&gt; ./script.log 这会将 stderr 附加到./script.log。但我也会将此对话框保留在终端中。通常我通过以下方式实现此目的管道命令tee。问题是,以下shell行(从文件执行bash): pyhton3 ./script.py --input ./*.t...

Admin

在 GNU Parallel 中抑制 stderr
stderr

在 GNU Parallel 中抑制 stderr

我正在使用 GNU Parallel 同时运行数千次命令。 为了获取我正在使用的执行日志--files。--results 为了在运行时获得漂亮的进度条,我使用--eta和--progress。 现在,我的问题是,虽然 STDERR 被重定向到文件,但它仍然被打印到终端,这会损坏我的进度条。 如何禁止将 STDERR 打印到终端?我仍然希望在日志文件中保留此信息,因此我不能只将命令包装到 中2&gt;/dev/null。 到目前为止我的命令行如下所示: cat input.txt | parallel -P 10 --progress --eta...

Admin

如何在读取 pcap 文件时使 tcpdump 输出安静下来?
stderr

如何在读取 pcap 文件时使 tcpdump 输出安静下来?

我注意到,当使用tcpdump命令读取 pcap 文件时,tcpdump即使我重定向 STDOUT 和 STDERR,该命令仍会以某种方式将信息打印到我的控制台。如何防止每次运行时都tcpdump打印“ ”?reading from file capture, link type EN10MB (Ethernet) 例如,当我预期没有打印行时,以下命令会打印一行: $ tcpdump -A -r capture.pcap | grep interesting-string &gt; /dev/null 2&gt;&amp;1 reading from f...

Admin