作为bash的新(ish)用户,myFun()
和funtion myFun
之间有什么区别?我遇到过这两个问题,不仅仅是人们的代码,还有教程。这两者有什么区别吗?当我尝试它时,似乎没有什么不同,所以我相当确定这两个定义函数的方法在语法上是不同的,并且根本没有不同的运行方式,但有人可以确认这个假设吗?
答案 0 :(得分:3)
这两种语法在定义函数方面有很大的不同:
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