在后台BASH上运行Matlab
我正在尝试以以下方式在后台运行BASH中的matlab脚本:在后台BASH上运行Matlab,bash,matlab,background,Bash,Matlab,Background,我正在尝试以以下方式在后台运行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
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'
我在循环中运行它,因此此操作需要执行多次
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 &
matlab-nojvm-r“p=setpath(/mydirectory/);addpath(p);myscript;exit”通过俄亥俄州立大学的下一个网站找到了解决方案
matlab -nodesktop -nodisplay < file.m &> file.out &
matlab-nodesktop-nodisplayfile.out&
它在没有任何旁路的情况下工作
有关更多说明,请访问
嗨,丹尼斯,每当我在没有管道的情况下发出命令时,它就会自动挂起,我真的不知道如何解决这个问题。谢谢你的邀请help@jarhead:尝试重定向的最后一个示例。它似乎有效,但我仍需要运行一些测试才能确定,谢谢。顺便说一句,有什么区别,为什么一个比另一个好?使用重定向可以避免产生子shell,因此减少了一个进程。并简化了引文。这是否也解决了你问题中的第3点?嗨,dennis,当我运行带有重定向的命令时,该命令是在执行之后完成的(该脚本至少需要运行一个小时)。现在,当我运行它时,我什么也得不到,当我运行ps或top时,没有过程,有什么想法吗?