2012-05-29 46 views
4

我想在bash在后台运行MATLAB的脚本方式如下:在后台运行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并在命令行中等待,是否有另一个synthax我可以用来使屏幕上没有任何东西出现?

需要你的帮助,TNX

回答

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 & 
+0

嗨丹尼斯,每当我把命令而不管道会自动暂停,我真的不知道该怎么去解决它。感谢您的帮助 – jarhead

+0

@jarhead:尝试重定向的最后一个例子。 –

+0

它似乎工作,但我仍然需要运行一些测试,以确定知道,谢谢你。顺便说一句,为什么一个比另一个好? – jarhead