xer*_*ero 7 git bash mingw pager
我正在尝试编写一个"live git log"bash脚本.这是迄今为止的代码:
#!/bin/sh
while true;
do
clear
git log --graph -10 --all --color --date=short --pretty=format:"%Cred%x09%h %Creset%ad%Cblue%d %Creset %s %C(bold)(%an)%Creset"
sleep 3
done
Run Code Online (Sandbox Code Playgroud)
我的问题是git log使用了一个寻呼机,你必须按下q才能退出,否则它将永远坐在那里.有没有办法在bash中编写quit命令?我试着呼应q,没有运气.(我在这里看到另一篇帖子建议回显"q">/dev/console - 但我的环境中没有开发控制台)
system:win7 box - 用mingw模拟bash(1.7.6.msysget.0)
UPDATE
这是完成的脚本
#!/bin/sh
while true;
do
clear
git log \
--graph \
--all \
--color \
--date=short \
-40 \
--pretty=format:"%C(yellow)%h%x20%C(white)%cd%C(green)%d%C(reset)%x20%s%x20%C(bold)(%an)%Creset" |
cat -
sleep 15
done
Run Code Online (Sandbox Code Playgroud)
-40是个人品味.将其更改为适合您和您的终端屏幕大小的任何数字.
eis*_*eis 21
添加--no-pager是要走的路:
git --no-pager log
Run Code Online (Sandbox Code Playgroud)
所以完整的命令就是
git --no-pager log --graph -10 --all --color --date=short --pretty=format:"%Cred%x09%h %Creset%ad%Cblue%d %Creset %s %C(bold)(%an)%Creset"
Run Code Online (Sandbox Code Playgroud)
试试下面的代码:
git log \
--graph -10 \
--all \
--color \
--date=short \
--pretty=format:"%Cred%x09%h %Creset%ad%Cblue%d %Creset %s %C(bold)(%an)%Creset" |
cat -
Run Code Online (Sandbox Code Playgroud)
编辑
| cat - 不是特定于 git,当你有一个寻呼机并且你想打印到时,它适用于每个用例 STDOUT
| 归档时间: |
|
| 查看次数: |
3862 次 |
| 最近记录: |