今天看到一篇讲 Bash function 的有意思的文章,原文在这里。 在 Bash 中一般我们这么定义一个函数: function name () { ... } 这是非常常见的写法,包括我自己在内,一直把他当做类似 Python、C 等语言一样的函数定义语法。实际上这里{ ... }并不代表函数体或者函数的作用域。它只是代表里面的内容是一组命令的集合。了解这点之后,接下来就有一些比较好玩的写法了。 比如下面的函数作用是测试文件是否存在,这里就没用大括号: function fileExists () [[ -f $1 ]] 或者 function isEven () (( $1 % 2 == 0 )) 还有下面的用法: function name () ( ... )… Read More