利用自定义函数个性化Shell内建命令
Overriding built-in Shell commands using functions
核心方法(TL;DR)
利用 builtin
或 command
命令前缀在 bash
函数中强制执行内建命令,并通过自定义函数重新封装内建函数的目标输出。代码示例:
function builtin-command() {
builtin builtin-command ...
# command ...
...
}
自定义函数示例(Demos)
在 ~/.bashrc
或 ~/.zshrc
中添加函数并 source
:
1. cd
# 利用 `colorls` 进行颜色渲染,并定义 cd 目录后自动返回该目录基本树
function tree() {
colorls --tree="${1:-1}"
}
function cd() {
builtin cd "$1" && tree
}
2. cheat
# 使用 `bat` 对输出进行颜色渲染,利用 command 防止无限套娃
function cheat() {
command cheat "$1" | bat --theme=base16 --language=bash --style=plain
}