我想花时间阅读 bash 历史并将结果放入变量中。不幸的是,time
(这是一个 shell 关键字)将结果打印到stderr
,并且显然stderr
从 shell 关键字重定向与重定向常规命令输出的工作方式不同。换句话说,
foo=$(time history -r 2>&1)
不起作用(foo
变量为空,输出打印到终端)。如何捕获time
关键字的输出?
注意:由于history
是内置的 shell,我不能使用外部time
命令(即/usr/bin/time
) - 我必须time
在 bash 中使用关键字。
您可以使用以下语法:
将命令放在 a 中
()
并将其重定向stderr
到stdout
例子: