例如:
Bash-Prog-Intro-HOWTO
Bash-Prog-Intro-HOWTO
function foo() {}
我在info bash中搜索查询,并查看POSIX的相关章节的功能关键字,但没有找到。
什么是在一些bash脚本中使用的函数关键字?这是一些不建议使用的语法吗?
在Bash中定义函数时,function关键字是可选的,如
manual所示:
Functions are declared using this Syntax:
name () compound-command [ redirections ]
or
function name [()] compound-command [ redirections ]
语法的第一种形式通常是首选,因为它与Bourne / Korn / POSIX脚本兼容,因此更具便携性。
也就是说,有时候您可能希望使用function关键字来防止Bash aliases与您的函数名称相冲突。考虑这个例子:
$ alias foo="echo hi" $ foo() { :; } bash: Syntax error near unexpected token `('
这里,’foo’被替换为同名的别名的文本,因为它是命令的第一个单词。使用函数不会扩展别名:
$ function foo() { :; }