我想时间阅读bash历史,并将结果放入变量中。不幸的是,time (它是一个shell关键字)将结果打印到stderr,而且显然从shell关键字重定向stderr与重定向常规命令输出不一样。换句话说,
foo=$(time history -r 2>&1)不工作(foo变量为空,输出被打印到终端)。如何捕获time关键字的输出?
注意:由于history是shell内置的,所以我不能使用外部time命令(即/usr/bin/time__) --我必须在bash中使用time关键字。
发布于 2018-03-11 11:31:39
您可以使用以下语法:
foo=$((time history -r) 2>&1)将命令放在()中并将其stderr重定向到stdout
示例:
$ foo=$((time history -r) 2>&1)
$ echo $foo
real 0m0.001s user 0m0.000s sys 0m0.000s
$ https://unix.stackexchange.com/questions/429547
复制相似问题