我想为终端制作一个自定义的“命令未找到”提示,例如这个。我已经设置了模板:
___________________________________________ / 我看到你正在尝试使用终端... \ |未找到命令: | | | | xxx | | | _____ ____________________________________/ v ╭─╮ ⌾ ⌾ │▕│ ╰─╯
我希望“xxx”被错误的命令替换。我怎样才能做到这一点?
答案1
当 bash 找不到命令名时,它会执行该函数command_not_found_handle
使用原始命令及其参数作为参数。所以定义你自己的。这会进入你的~/.bashrc
.确保打印到标准错误,而不是标准输出,并返回相同的退出状态,否则这可能会破坏该 bash 实例内执行的 shell 脚本片段。
command_not_found_handle () {
local cmd
printf -v cmd "%-40s" "${1:0:40}"
cat >&2 <<EOF
___________________________________________
/ I see you're trying to use the terminal … \
| Command not found: |
| |
| $cmd |
| |
_____ ____________________________________/
v
╭─╮
⌾ ⌾
│▕│
╰─╯
EOF
return 127
}