1

我正在尝试在 python 中执行系统命令,但我正在使用 >/dev/null 2>&1来隐藏所有输出。我试图只显示非常具体的输出,但我也试图将数据输出到文件> grep.txt中,以便我可以将特定数据 grep 出来。但是,当我在命令中使用 /dev/null 时,它似乎将进入 /dev/null,因为 grep.txt 中没有出现任何内容。

我尝试了以下方法:

#command > grep.txt > /dev/null 2>&1
#command > grep.txt | > /dev/null 2>&1
#command > grep.txt & > /dev/null 2>&1
#command > grep.txt & /dev/null 2>&1

但似乎没有任何效果。它是一个或另一个。我只想将结果保存到 grep.txt 文件,但也隐藏终端上的输出。

我什至尝试在使用 > /dev/null 时仅使用变量来存储命令的结果,但变量始终为空!所以我只能假设它是/dev/null。

请帮忙!xD

对不起这个愚蠢的问题!

4

1 回答 1

2

/dev/null相当于什么都不写。它有一个文件接口,但不记录任何东西。如果要检索数据,请将其写入文件:

command > grep.txt 2>&1

现在grep.txt拥有您正在寻找的所有数据。不会有输出打印到终端。您从左到右阅读重定向:stdout转到文件,stderr转到stdout当前要去的任何地方。2>&1 grep.txt将读取为stderr转到标准输出(终端),stdout转到文件,因此您将看到错误输出,但正常输出将转到文件。

于 2021-11-12T01:56:16.287 回答