Function 可以在shebang可执行GNU倍频程文件中定义函数吗?

Function 可以在shebang可执行GNU倍频程文件中定义函数吗?,function,octave,Function,Octave,给定一个带有#的八度m文件标题/usr/bin/octave-q,可以在此文件中定义函数吗?或者唯一的方法是调用另一个文件中定义的函数吗?是的,它们可以。唯一的问题是,第一个倍频程语句不能是函数定义,这就是为什么许多倍频程程序将以1开头。然而,我的经验是,大多数倍频程程序都需要一个包,所以第一个语句可以只是加载所述包 下面是一个倍频程程序示例: #!/usr/bin/env octave ## Do not forget your license pkg load foo; pkg load

给定一个带有
#的八度m文件标题/usr/bin/octave-q
,可以在此文件中定义函数吗?或者唯一的方法是调用另一个文件中定义的函数吗?

是的,它们可以。唯一的问题是,第一个倍频程语句不能是函数定义,这就是为什么许多倍频程程序将以
1开头。然而,我的经验是,大多数倍频程程序都需要一个包,所以第一个语句可以只是加载所述包

下面是一个倍频程程序示例:

#!/usr/bin/env octave
## Do not forget your license

pkg load foo;
pkg load bar;

1; # not really necessary because of the pkg load statements above

function foobar ()
  ## this function does something amazing
endfunction

function main (argv)
  disp (argv);
endfunction

main (argv ());

是的,他们可以。唯一的问题是,第一个倍频程语句不能是函数定义,这就是为什么许多倍频程程序将以
1开头。然而,我的经验是,大多数倍频程程序都需要一个包,所以第一个语句可以只是加载所述包

下面是一个倍频程程序示例:

#!/usr/bin/env octave
## Do not forget your license

pkg load foo;
pkg load bar;

1; # not really necessary because of the pkg load statements above

function foobar ()
  ## this function does something amazing
endfunction

function main (argv)
  disp (argv);
endfunction

main (argv ());

你试过看会发生什么吗?事实上,我试过了,如果我能报告的话会很好,但是结果太奇怪了,我宁愿不给陈述增加混乱。(好吧,这个解决方案的结果和最初的行为一样奇怪:)你试过看会发生什么吗?事实上,我试过了,如果我能报告的话会很好,但结果太奇怪了,我不想给陈述增加混乱。(好吧,解决方案和最初的行为一样怪异:)