我正在尝试输出 git-show 结果列表并将它们通过管道传输到寻呼机中。
不幸的是我无法保留颜色。
这是我正在运行的命令:
git log -n10 | awk '{print $1}' | xargs -d '\n' -I{} bash -c 'git show {}' -- | less -MR
如果没有| less -MR
管道,输出将以彩色打印。
我也尝试过less -r
,但显然问题似乎在于,git show
或者xargs
当他们检测到其输出正在通过管道传输到另一个命令而不是 时不保留颜色stdout
。
该xargs
手册没有提到保留颜色,也没有git
。
如何保留less
寻呼机输出中的颜色?
答案1
man git-show
描述了如何强制保留颜色,似乎取自man git-diff
:
--color[=<when>]
Show colored diff. --color (i.e. without =<when>) is the same as --color=always. <when> can be one of always, never, or auto.
更新了 bash 命令:
git log -n10 | awk '{print $1}' | xargs -d '\n' -I{} bash -c 'git show --color=always {}' -- | less -MR