首页 > 解决方案 > 创建自定义关键字和运算符

问题描述

我想使用其他几个关键字而不是常见的运算符,例如orfor ||

alias只对命令行做这样的事情,而我只对 bash 本身的核心语法感兴趣。

在其他语言中,您可以通过简单的绑定来做到这一点,例如在 F# 中通过let (or) = (||)

标签: bash

解决方案


作为别名:

alias and='(($?==0)) &&'
alias or='(($?==0)) ||'
alias not='!'

作为函数:

and () {
    (($?==0)) && "$@"
}

or () {
    (($?==0)) || "$@"
}

not () {
    ! "$@"
}

用法:

$ false; and echo hello
$ true; and echo hello
hello
$ false; or echo hello
hello
$ true; or echo hello
$ not false; echo $?
0
$ not true; echo $?
1

这些与Fish 的组合器 builtins使用相同。


推荐阅读