如何在Bash配置文件中创建可持久化的自定义函数?
快速创建日志ERROR检查函数,随终端会话自动加载
没问题,这事儿超简单,我来一步步带你搞定,以后查日志里的ERROR再也不用敲长命令了!
第一步:选对配置文件
不同终端shell对应的配置文件不一样,你得选自己在用的那个:
- 如果是Bash:编辑
~/.bashrc文件 - 如果是Zsh:编辑
~/.zshrc文件 - 要是用其他shell(比如Fish),对应的配置文件是
~/.config/fish/config.fish,不过函数写法要调整,这里先讲最常用的Bash/Zsh版本
第二步:添加自定义函数
打开刚才选的配置文件,在末尾加上这段代码:
check_error() { # 先检查用户有没有传入日志文件名 if [ $# -eq 0 ]; then echo "用法:check_error <日志文件名>" return 1 fi # 用grep查找ERROR,同时高亮匹配内容(终端支持的话自动生效) grep --color=auto "ERROR" "$1" # 可选:如果想统计ERROR出现的次数,去掉下面这行的注释就行 # echo "ERROR出现次数:$(grep -c "ERROR" "$1")" }
简单解释下:
- 函数名叫
check_error,你可以改成自己喜欢的短名字,比如errcheck都行 - 先判断用户有没有传文件名,没传的话直接提示用法,避免无意义报错
--color=auto会让找到的ERROR高亮显示,看着更直观- 注释掉的那行是统计ERROR次数的,需要的话去掉注释启用就行
第三步:让函数立即生效
保存配置文件后,不用重启终端,直接在当前会话执行这条命令就能让配置生效:
# Bash用户执行 source ~/.bashrc # Zsh用户执行 source ~/.zshrc
嫌麻烦的话也可以直接关掉终端再重新打开,新会话会自动加载这个函数。
第四步:使用函数
现在你只要敲函数名加日志文件名就行,比如:
check_error test.txt
直接就能输出test.txt里所有包含ERROR的行,还带高亮,比原来的grep ERROR test.txt简洁太多!
额外小技巧
想让函数更实用的话,可以加这些功能:
- 加上
-i参数让grep忽略大小写:grep --color=auto -i "ERROR" "$1",能匹配error、Error这类变体 - 加上
-n参数显示行号:grep --color=auto -n "ERROR" "$1",方便快速定位错误位置
内容的提问来源于stack exchange,提问作者Counter10000
相关产品推荐
相关产品推荐

