在bash脚本中使用time命令并重定向输出

时间:2012-07-25 22:27:05

标签: bash redirect time

我正在尝试编写一个

的脚本
x =$ncore
numactrl -C $x ( time -p $exe ) > out.txt 2>&1
终端上的

(时间$ exe)> out.txt 2>& 1按照我的意愿工作(out.txt包含时间和可执行文件的输出)

我正在使用红帽6.2并且时间不是GNU版本(我假设-a -o选项不起作用)

我想out.txt从可执行文件输出,最后输出时间命令。

bash脚本给我带来了问题(所以我使用了(time -p $ exe),现在numactl看到了(作为可执行文件。

有没有办法一起使用numactl和time命令并拥有我想要的输出?

1 个答案:

答案 0 :(得分:2)

如果numactrl想要一个命令,但你想使用一些shell功能,只需将它作为命令给它:

numactrl -C $x bash -c "( time -p $exe ) > out.txt 2>&1"

当您从bash提示符或time -p $exe内运行bash -c时,您正在使用bash内置版本的时间。具有-o选项的选项是外部命令,因此要从bash中使用它,您必须指定command time/bin/time/usr/bin/time

如果你运行numactrl -C $x time ...,它可能会运行外部命令,因此-o应该适用于那种情况,但如果没有,那么你总是使用bash -c方法。

请注意,time的各种版本的输出格式不同。 GNU coreutils版本打印的信息比bash内置版本更多。