标准输出为空

标准输出为空

当运行命令时:

cellprofiler --get-batch-commands "/users/pmrotem/CellProfiler/example_project/output/Batch_data5_8.h5"

在 shell 中,我得到一个输出:

CellProfiler -c -r -b -p /users/pmrotem/CellProfiler/example_project/output/Batch_data5_8.h5 -g Metadata_Plate=20140602-LOPAC pilot_Assay Plate 0_5
CellProfiler -c -r -b -p /users/pmrotem/CellProfiler/example_project/output/Batch_data5_8.h5 -g Metadata_Plate=20140602-LOPAC pilot_Assay Plate 0_6
CellProfiler -c -r -b -p /users/pmrotem/CellProfiler/example_project/output/Batch_data5_8.h5 -g Metadata_Plate=20140602-LOPAC pilot_Assay Plate 0_7
CellProfiler -c -r -b -p /users/pmrotem/CellProfiler/example_project/output/Batch_data5_8.h5 -g Metadata_Plate=20140602-LOPAC pilot_Assay Plate 0_8

但是,当我尝试将其输出到文件(我添加>test.txt)时,我得到一个空文件。我还尝试通过 python 调用该命令并获得空的标准输出。在这两种情况下,stderr 也是空的。

问题是什么?有任何想法吗?

答案1

有些程序在连接到终端时和未连接到终端时的行为有所不同(请参阅isatty功能)。要使应用程序认为它已连接到终端,您可以尝试script -c

script -c cellprofiler --get-batch-commands \
 "/users/pmrotem/CellProfiler/example_project/output/Batch_data5_8.h5" \
  >test.txt

相关内容