我想创建一个日志文件,而我的脚本提取7z
我正在使用以下内容:
7z x "*.7z" >> logfile.log 2>&1
但终端停止显示输出,日志文件为空白......
答案 0 :(得分:0)
double initArray(int data[], int dimensionCount){
//data: element 0= number of dimensions
//element 1 through inf define the size of each dimension
//dimensionCount keeps track of the current dimension being manipulated by the function
//Allocate dynamic memory for the current dimension
double* output;
output=new double[data[dimensionCount]];
int i=dimensionCount;
while(i<data[dimensionCount]){
if( !(output[i]= initArray(data, dimensionCount++))){
std::cout<< "Error! Out of Memory!";
break;
}
i++;
}
//returning the generated array tacks on the generated dimension to the lower dimension preceding it
double array=*output;
return array;
}
程序可能检测到它的stdout不是终端(TTY),并且在这种情况下选择不那么冗长。
不幸的是,7z
文档似乎并没有提供详细的&#34;&#34;像许多程序一样的旗帜。因此,我不确定您是否可以轻松打开输出。
但你可以欺骗程序认为它在stdout上有一个终端!例如:
7z
有关更多提示,请参阅:Bash: trick program into thinking stdout is an interactive terminal
答案 1 :(得分:0)
您将STDERR重定向到STDOUT(即script logfile.log 7z x "*.7z"
)并将STDERR重定向到日志文件。试试2>&1
。希望有所帮助:
%7z c /tmp/TailsBSDPLIST.7z~ / TailsBSD&gt; /tmp/logfile.log
%cat /tmp/logfile.log
7-Zip(a)9.38 beta版权所有(c)1999-2014 Igor Pavlov 2015-01-03 p7zip版本9.38.1(locale = C,Utf16 = off,HugeFiles = on,1 CPU)命令行错误: 不支持的命令: ç