2012-05-29 75 views
4

我想在bash在後臺運行MATLAB的腳本方式如下:在後臺運行BASH Matlab的

echo "matlab -nojvm -r p=setpath(/mydirectory/);addpath(p);myscript;exit" |sh & 

我得到的錯誤是:

sh: line 1: syntax error near unexpected token '(' 
sh: line 1: 'matlab -nojvm -r p=setpath(/mydirectory/);addpath(p);myscript;exit' 

我運行它在一個循環中,所以這個操作需要多次完成

  1. 錯誤是否與管道有關?每當我在bg上運行matlab時,它都會被暫停,並且對於簡單的命令或上傳gui,管道運行良好。

  2. 是否可以從BASH中設置matlab的路徑?

  3. 我嘗試在沒有GUI或任何「彈出」的情況下運行Matlab,當我使用-nodesktop -nojvm運行時,它不打開3 GUI,但仍然進入matlab並在命令行中等待,是否有另一個synthax我可以用來使屏幕上沒有任何東西出現?

需要你的幫助,TNX

回答

4

試試這個:

echo 'matlab -nojvm -r "p=setpath(/mydirectory/);addpath(p);myscript;exit"' |sh & 

外單引號保護內部雙引號所以sh沒有看到括號。

是否有任何理由,你不能只是:

matlab -nojvm -r "p=setpath(/mydirectory/);addpath(p);myscript;exit" & 

或者是:

matlab -nojvm -r "p=setpath(/mydirectory/);addpath(p);myscript;exit" </dev/null & 
+0

嗨丹尼斯,每當我把命令而不管道會自動暫停,我真的不知道該怎麼去解決它。感謝您的幫助 – jarhead

+0

@jarhead:嘗試重定向的最後一個例子。 –

+0

它似乎工作,但我仍然需要運行一些測試,以確定知道,謝謝你。順便說一句,爲什麼一個比另一個好? – jarhead