我希望在 zsh 中运行的最后一个命令的打印输出(stdout 和 stderr)可在可供使用的变量中使用grep
,等等。
答案1
您可以将命令的输出重定向到文件(甚至变量),但这不会自动发生。
重定向输出是手册页中的一个大主题。只是为了提醒您这个术语,这会重定向标准输出和错误:
foo=$(command 2>&1)
通过检查
$ foo=$(oops 2>&1); date; echo "$foo"
Sun Feb 28 20:59:18 EST 2016
sh: 1: oops: not found
进一步阅读:
- 3.6 重定向(Bash 参考手册)
答案2
您可以设置寻呼机来捕获输出,然后在它适合一个屏幕时退出。当它不适合时,您可以使用寻呼机滚动和搜索。
export PAGER=less
export LESS=-FSXRi
# -F and -X are relevant here, but that's what I use
# also, less quickly toggles most by typing '-' and the option
我想 zsh 有一种方法可以自动修改命令以通过寻呼机,但我不知道如何实现。
将此输出与适合一个屏幕的不同目录进行比较:
find ~ -type f |& less
# |& to capture both stdout and stderr