如果我启动一个 octave 交互式 shell,我可以输入:
octave:1> function y = foo(x)
> y = x + 2;
> endfunction
octave:2> foo(7)
ans = 9
解释器知道要等待函数定义的其余部分。
但是,如果我这样做
octave:1> eval("function y = foo(x)");
octave:2> eval("y = x + 2;");
octave:3> eval("endfunction");
它评估每一行,就好像它是单独的一样。所以它定义了一个函数 foo 什么都不做,并在后两行给出错误。
有没有办法让 eval 与解释器一样运行?最终,我想创建一个 octave 脚本,它执行另一个脚本,但能够在两者之间做其他事情。有没有办法告诉 eval 等待命令的其余部分(交互环境的方式)?或者,有没有办法以编程方式将命令提供给交互式解释器?
谢谢你。