从Unix shell脚本运行MATLAB

时间:2013-02-25 16:31:14

标签: matlab shell unix

我在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 ...

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

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

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

1 个答案:

答案 0 :(得分:6)

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

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