将shell命令输出分配给ROOT中的变量

时间:2015-06-10 10:29:11

标签: shell root-framework

我正在使用gSystem在我的ROOT代码中执行shell命令,返回int,如gSystem->Exec()所示。但是当我尝试将输出分配给代码变量时,分配不会发生。

int low_edge = 0;
low_edge = gSystem->Exec("ls ./folder | egrep -o '[0-9]{3,3}' | head -1");

我也试过了gSystem->Exec("ls ./folder | egrep -o '[0-9]{3,3}' | head -1") >> low_edge,但它没有成功。

我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:0)

gSystem-> Exec()的返回值为0或-1,具体取决于命令是否成功。

你想要的是:

TString GetFromPipe(const char* command)

TString the_output=gSystem->GetFromPipe("ls ./folder | egrep -o '[0-9]{3,3}' | head -1");

应该可以工作,你只需要将TString转换为int。