2013-02-25 2 views
3

Mac OS (Mountain Lion)의 Unix 셸 스크립트에서 MATLAB 스크립트를 실행하는 데 문제가 있습니다.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 ... 

두 "sudo를 MV"명령은 단지 MATLAB을 실행하는 동안 눈에 보이지 않는 독을하고, MATLAB이 끝난 후 다시 가져오고 있습니다.

첫 번째 명령은 완벽하게 작동하고 Dock을 보이지 않게 만든 다음 MATLAB을 실행합니다. 그러나 MATLAB의 실행이 끝나면 나머지 셸에서는 계속 실행되지 않습니다. 터미널은 MATLAB에서 "고정"되어 있습니다. 나는 지명 된 파이프 등으로 주변을 둘러 보려고했지만, 그들 중 누구도 일할 수 없었습니다.

MATLAB이 끝난 후 쉘 스크립트를 계속 실행하려면 어떻게해야합니까?

+0

독을 숨길 수있는 더 좋은 방법은 http://hints.macworld.com/article.php?story=20100316164551355를 참조하십시오. – chepner

+0

고마워, 나는 그것을 시도 할 것이다 –

답변

6

exit을 Matlab 명령에 추가 했습니까?

/Applications/MATLAB_R2008a/bin/matlab -nodesktop -r "run Documents/MATLAB/BLS/BLS; exit;" 
+0

나는 시도했다. 그러나 나는 그것이 틀리게했다라고 생각한다. 거기에서 세미콜론 만 사용할 수 있다는 것을 몰랐습니다. 조금 어리석은 느낌, 사실 그것은 분명합니다. 감사! –

+1

@RyanSimmons 일괄 처리에서 matlab을 실행하려면 세션을 종료하려면 끝에 exit 명령이 필요합니다. 명령 줄 ('... -r "foo(); exit();"')에 넣거나 실행중인 함수/스크립트에 추가 할 수 있습니다. – Shai

관련 문제