我想将一个命令的结果保存在一个文件中

use*_*164 3 linux

我正在使用 cppcheck 工具来分析源代码。

在gcc编译器的shell提示符下,我给出的命令如下

$ cppcheck abc.cpp  
Run Code Online (Sandbox Code Playgroud)

输出是

checking abc.cpp...   
(error) Possible null pointer dereference: <var> - otherwise it is redundant to check if   <var> is null at line 100    
segmentation fault
Run Code Online (Sandbox Code Playgroud)

我想把这个输出保存在一个文件中,所以我给出了如下命令

$ cppcheck abc.cpp 2> abc.txt
Run Code Online (Sandbox Code Playgroud)

但是abc.txt文件的内容如下

checking abc.cpp...  
Run Code Online (Sandbox Code Playgroud)

它只保存了第一行,abc.txt 文件中缺少主要错误部分。

我应该使用哪个命令来获取文件中的所有输出行?cppcheck 工具的使用手册在这里

Cal*_*leb 6

2从您的命令中删除并仅用>作重定向运算符。

通过使用,2>您将错误流 (STDERR) 重定向到一个文件;听起来您想要的是常规输出流(STDOUT)。

cppcheck abc.cpp > abc.txt
Run Code Online (Sandbox Code Playgroud)

如果您希望两个流都转到您的文件,您可以将 2(错误流)连接到 1(标准输出流),如下所示:

cppcheck abc.cpp > abc.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

或者使用lain 建议快捷语法来获取所有内容。