我需要不时查看日志文件的特定行:
$ head -10 log.txt|tail -1 # to view line 10 of log.txt
然后我在我的 bashrc
中写了一个函数 v
让生活更轻松:
$ v 10
好吧,也许我在这里有点 split :我也想忽略空格:
$ v10
我知道的唯一方法是定义很多别名:
alias v1='v 1'
alias v2='v 2'
alias v3='v 3'
alias v4='v 4'
...
有什么好的方法吗?
感谢@Chirlo 和@anishsane 的想法。
这是我的最终版本,基于@anishsane 的一些修复:
eval "`declare -f command_not_found_handle | sed s/command_not_found_handle/command_not_found_handle_orig/`"
command_not_found_handle(){
if expr match "$1" "v[0-9][0-9]*" >/dev/null ; then
v ${1:1}
return $?
fi
command_not_found_handle_orig "$@"
}
最佳答案
检查 command_not_found_handle ()如果你有 bash
> 4,你可以覆盖它来处理这种情况。当您键入 v10
并且 bash 无法解析它时,将调用此函数并将 v10
作为第一个参数,然后您捕获它并在那里做您的事情。
关于shell - 命令/别名可以可变吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15757937/