在 Careti 会话中禁用终端分页器
很多 CLI 工具(如 Git)会使用 less 作为分页器。Careti 执行命令时分页器会阻塞输出,影响自动化。可以仅在 Careti 会话中禁用分页器。
原理
Careti 会在它启动的终端中设置环境变量:
CLINE_ACTIVE— 表示该 shell 由 Careti 启动
在 shell 启动脚本中检测该变量,仅对 Careti 会话生效。
快速设置 (Zsh/Bash)
在 ~/.zshrc / ~/.bashrc / ~/.bash_profile 中加入:
# 在 Careti 会话中禁用分页器
if [[ -n "$CLINE_ACTIVE" ]]; then
export PAGER=cat
export GIT_PAGER=cat
export SYSTEMD_PAGER=cat
export LESS="-FRX"
fi
Note
PAGER=cat直接输出GIT_PAGER=cat禁用 Git 分页SYSTEMD_PAGER=cat禁用 systemd 分页LESS="-FRX"让 less 更像流式输出
验证
- 在 Careti 运行终端命令后:
echo "$CLINE_ACTIVE"应输出非空git log等不应停在分页器
可选方案
git --no-pager log -n 50 --decorate --oneline
systemctl --no-pager status nginx
journalctl --no-pager -u nginx -n 200
less -FRX README.md
也可以仅在 Careti 会话内定义 alias:
if [[ -n "$CLINE_ACTIVE" ]]; then
alias less='less -FRX'
alias git='command git --no-pager'
alias systemctl='command systemctl --no-pager'
alias journalctl='command journalctl --no-pager'
fi
常见分页器变量:
- Git:
GIT_PAGER=cat - Systemd:
SYSTEMD_PAGER=cat - Man:
MANPAGER=cat