我在我的 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 脚本?