3

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

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

我在这里做什么?这是我的外壳的副本:

#! /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 脚本?

4

1 回答 1

7

Have you tried adding exit to Matlab command?

/Applications/MATLAB_R2008a/bin/matlab -nodesktop -r "run Documents/MATLAB/BLS/BLS; exit;"
于 2013-02-25T16:45:47.180 回答