3

Mac OS(Mountain Lion)でUnixシェルスクリプトからMATLABスクリプトを実行するのに問題があります。

シェルからMATLABスクリプトを呼び出す方法を知っていますが、それは問題なく機能します。ただし、問題は、MATLABの実行が終了した後、シェルスクリプトで別のプログラムを呼び出せるようにすることです。しかし、MATLABプログラムが終了すると、シェルは「スタック」します。つまり、シェル内の他の関数の実行を継続せず、ターミナルウィンドウが制御をshに戻す代わりに、MATLAB環境でスタックします。

私はここで何をしますか?これが私のシェルのコピーです:

#! /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 ...

2つの「sudomv」コマンドは、MATLABの実行中にDockを非表示にし、MATLABの終了後にDockを元に戻します。

最初のコマンドは完全に機能し、Dockを非表示にしてから、MATLABを実行します。ただし、MATLABの実行が終了すると、残りのシェルは続行されません。ターミナルはMATLABで「スタック」しています。名前付きパイプなどをいじってみましたが、どれも動かせませんでした。

MATLABが終了した後、シェルスクリプトの実行を続行するにはどうすればよいですか?

4

1 に答える 1

7

exitMatlabコマンドに追加してみましたか?

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