Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在后台BASH上运行Matlab_Bash_Matlab_Background - Fatal编程技术网

在后台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

我正在尝试以以下方式在后台运行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' 
我在循环中运行它,因此此操作需要执行多次

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

  • 从BASH开始设置matlab的路径是否有距离

  • 我尝试在没有GUI或任何“弹出”的情况下运行Matlab,当我使用-nodesktop-nojvm运行时,它不会打开3 GUI,但仍会进入Matlab并在命令行中等待,是否有另一个synthax我可以用来在屏幕上不显示任何内容

  • 如果需要您的帮助,请尝试以下方法:

    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时,没有过程,有什么想法吗?