如何为Bash中[函数的-z/-n等操作数重命名为自定义长格式?
为Bash
[ 命令操作数自定义名称的方法 可以通过封装自定义函数实现将晦涩的短操作数重命名为直观的长选项,以下是具体实现:
方法:自定义封装函数
编写一个替代原生[的函数,解析自定义长选项并转换为对应的原生操作数,再调用原生[命令执行判断:
# 自定义判断函数,支持长选项 is() { case "$1" in --is-empty) shift [ -z "$1" ] ;; --is-not-empty) shift [ -n "$1" ] ;; # 可按需扩展更多长选项,例如: # --is-equal) # shift # [ "$1" = "$2" ] # ;; # --is-greater-than) # shift # [ "$1" -gt "$2" ] # ;; *) # 非自定义选项直接转发给原生[命令 [ "$@" ] ;; esac }
用法示例
- 判断字符串为空:
is --is-empty ""(返回值0,表示真) - 判断字符串非空:
is --is-not-empty "hello world"(返回值0,表示真) - 兼容原生操作数:
is "foo" = "foo"(和原生[ "foo" = "foo" ]效果一致)
这种方式既保留了原生[命令的全部功能,又提供了更直观的自定义长选项。
内容的提问来源于stack exchange,提问作者Avraam
相关产品推荐
相关产品推荐

