我在使用pacman实用工具捕获tee‘S IO时遇到了一个小问题。
pacman -S group-1 group-2 | tee pacman.log还有一个问题:当pacman查询来自group-1的哪个包时,它要安装软件包的列表在某个地方消失了。如果我按Enter (即选择“所有包”),那么就会出现它们的列表,并且pacman会从group-2中查询有关包的信息,但是和前面一样,包列表是隐藏的。
发布于 2016-03-21 20:13:09
如果pacman写入标准错误,则不会使用给定的管道命令捕获该错误。您可以重定向标准错误以遵循标准输出,如下所示:
pacman -S group-1 group-2 2>&1 | tee pacman.log但是,对于交互式命令行程序来说,一个不那么麻烦的解决方案是使用script捕获输出,例如,
script -c "pacman -S group-1 group-2" pacman.log对Linux来说。这将捕获发送到终端的所有字符,而不会干扰提示。
对于特定的程序,您可能会找到特定的解决方案。例如,pacman手册说它有一个可能有用的选项:
-p, --print只打印目标,而不是执行实际操作(同步、删除或升级)。使用--print-format指定目标的显示方式。默认格式字符串是"%l",它用-S显示URL,用-U显示文件名,用-R显示pkgname-pkgver。
https://unix.stackexchange.com/questions/271314
复制相似问题