作为 bash 的新(ish)用户, myFun()funtion myFun 之间有什么区别?我遇到过这两种情况,不仅在人们的代码中,而且在教程中。两者之间有什么区别吗?当我尝试它时,似乎没有什么不同,所以我相当确定这两种定义函数的方法只是在语法上不同并且根本没有不同的运行,但是有人可以证实这个假设吗?

最佳答案

这两种定义函数的语法有很大的不同:

   name() compound-command
   function name compound-command

The former is POSIX,因此具有广泛的便携性。后者不是。否则,它们是相同的。

例子
dash 是类 debian 系统上的默认 shell ( /bin/sh )。观察到,在 dash 下,这种定义函数的方法是成功的:
$ fn() { date; }
$ fn
Mon Nov 24 14:27:49 PST 2014

但是,这种方法不是:
$ function fn { date; }
dash: 2: function: not found
ash(busybox的shell)下也有类似的错误:
$ function fn { date; }
-sh: function: not found

关于bash - myFun() 和函数 myFun 之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27115234/

10-12 22:21