4

我正在尝试通过以下方式在后台在 BASH 中运行 matlab 脚本:

echo "matlab -nojvm -r p=setpath(/mydirectory/);addpath(p);myscript;exit" |sh &

我得到的错误是:

sh: line 1: syntax error near unexpected token '('
sh: line 1: 'matlab -nojvm -r p=setpath(/mydirectory/);addpath(p);myscript;exit' 

我在一个循环中运行它,所以这个操作需要做几次

  1. 错误是否与管道有关?每当我在 bg 上运行 matlab 时,它就会被挂起,对于简单的命令或上传 gui,管道运行良好。

  2. 是否可以从 BASH 设置 matlab 的路径?

  3. 我尝试在没有 GUI 或任何“弹出”的情况下运行 Matlab,当我使用 -nodesktop -nojvm 运行时,它不会打开 3 GUI,但仍会进入 matlab 并在命令行中等待,是否有另一个我可以使用的合成器什么都不出现在屏幕上?

可以使用你的帮助,tnx

4

2 回答 2

4

试试这个:

echo 'matlab -nojvm -r "p=setpath(/mydirectory/);addpath(p);myscript;exit"' |sh &

外部单引号保护内部双引号,因此sh看不到括号。

有什么理由你不能只是:

matlab -nojvm -r "p=setpath(/mydirectory/);addpath(p);myscript;exit" &

也许:

matlab -nojvm -r "p=setpath(/mydirectory/);addpath(p);myscript;exit" </dev/null &
于 2012-05-29T01:30:02.360 回答
2

感谢俄亥俄州立大学的下一个网站找到了解决方案

matlab -nodesktop -nodisplay < file.m &> file.out &

它可以在没有任何绕过路线的情况下工作

如需进一步解释,请访问

http://www.stat.osu.edu/computer-support/programming/background-jobs

于 2012-05-30T06:30:02.643 回答