【发布时间】:2013-02-26 00:45:47
【问题描述】:
我在我的 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 脚本?
【问题讨论】:
-
请参阅hints.macworld.com/article.php?story=20100316164551355,了解隐藏停靠栏的更好方法。
-
谢谢,我试试看