从unixshell脚本运行MATLAB

从unixshell脚本运行MATLAB,matlab,shell,unix,Matlab,Shell,Unix,我在Mac OS(Mountain Lion)上运行Unix shell脚本时遇到一些问题 我知道如何从shell中调用MATLAB脚本,这很好。然而,问题是,我希望我的shell脚本在MATLAB完成运行后调用另一个程序。但是当MATLAB程序完成时,shell被“卡住”,也就是说,它不会继续执行shell中的其他函数,并且终端窗口被困在MATLAB环境中,而不是将控制返回给sh 我在这里干什么?这是我的shell的副本: #! /bin/sh echo "Please make sure t

我在Mac OS(Mountain Lion)上运行Unix shell脚本时遇到一些问题

我知道如何从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脚本

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

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

看一个更好的方法来隐藏码头。谢谢,我会试试的。我确实试过了,但似乎我做错了。我不知道我可以在那里用分号。我觉得自己有点傻,事实上,这是很明显的。谢谢@成批运行matlab的RyanSimmons需要在结束时发出
exit
命令来终止会话。您可以将其放在命令行(
…-r“foo();exit();”
)中,也可以将其添加到正在执行的函数/脚本中。