我在我的Mac OS(Mountain Lion)上从Unix shell脚本运行MATLAB脚本时遇到了一些问题。
我知道如何从shell调用MATLAB脚本,这个没问题。然而,问题是我希望我的shell脚本在MATLAB运行完成后调用另一个程序。但是当MATLAB程序完成后,shell“卡住”了。也就是说,它不会继续执行shell中的其他函数,而且终端窗口停留在MATLAB环境中,而不是返回控制给sh。
我该怎么办?以下是我的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中。我尝试了使用命名管道等方法来解决问题,但是没有成功。
如何让shell脚本在MATLAB完成后继续执行?