某些bash脚本中使用的“function”关键字是什么?

前端之家收集整理的这篇文章主要介绍了某些bash脚本中使用的“function”关键字是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如:
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() { :; }

猜你在找的Bash相关文章