从Unix shell脚本运行MATLAB

Rya*_*ons 3 unix shell matlab

我在Mac OS(Mountain Lion)上从Unix shell脚本运行MATLAB脚本时遇到了一些麻烦.

我知道如何从shell调用MATLAB脚本,这很好.但是,问题是我希望我的shell脚本在MATLAB运行完毕后再调用另一个程序.但是当MATLAB程序完成时,shell就会"卡住".也就是说,它不会继续执行shell中的其他函数,并且终端窗口卡在MATLAB环境中而不是将控制权返回给sh.

我该怎么办?这是我的shell的副本:

#! /bin/sh
echo "Please make sure the network cable is plugged in" 
echo "(then press return to continue)"

sudo mv /System/Library/CoreServices/Dock.app /System/Library/CoreServices/Dock.app.bak
killall Dock

/Applications/MATLAB_R2008a/bin/matlab -nodesktop -r "run Documents/MATLAB/BLS/BLS"

sudo mv /System/Library/CoreServices/Dock.app.bak /System/Library/CoreServices/Dock.app

# OTHER COMMANDS AFTER HERE CALLING OTHER PROGRAMS ...
Run Code Online (Sandbox Code Playgroud)

两个"sudo mv"命令只是在执行MATLAB时使Dock不可见,并在MATLAB完成后将其恢复.

第一个命令工作正常,使Dock不可见,然后运行MATLAB.但是,当MATLAB完成运行时,它不会继续使用shell的其余部分.终端在MATLAB中"卡住".我试图摆弄命名管道等,但我无法让它们中的任何一个工作.

在MATLAB完成后如何让它继续执行shell脚本?

Sha*_*hai 7

您是否尝试过添加exit到Matlab命令?

/Applications/MATLAB_R2008a/bin/matlab -nodesktop -r "run Documents/MATLAB/BLS/BLS; exit;"
Run Code Online (Sandbox Code Playgroud)