2

我正在尝试将系统给我的错误放入文件中。我有以下脚本:

#!/bin/bash

logfile="output.log"

echo "Starting" > $logfile

./cpi 2>&1 >> $logfile

echo "Ending" >> $logfile

exit

我在文件output.log中得到的输出如下:

Starting
Ending

但在屏幕上我看到了这个:

./cpi: error while loading shared libraries: libmpich.so.3: cannot open shared object file: No such file or directory

错误是故意的。我从我的#LD_LIBRARY_PATH 中取出了该库的路径。关键是,如果脚本在另一台机器上运行并且库不存在,我想得到屏幕上的错误。

我还需要我自己的程序的输出,因此我需要2>&1 >> $logfile它的执行之后。

有什么想法吗?

4

2 回答 2

2

我可能是误会了。

如果您希望标准输出和标准错误 fromcpi都转到 to $logfile,请交换重定向的顺序:

./cpi >> $logfile 2>&1
于 2012-08-23T18:33:38.917 回答
0

此错误由加载程序报告,而不是 cpi 二进制文件,因此重定向在此处不起作用。您可以通过生成 cpi 内部错误来对此进行测试。如果您使用包装脚本启动 cpi,您可能会记录此错误。

于 2012-08-23T18:29:23.050 回答