2012-09-06 94 views

回答

7

我會建議一個類似的解決方案carandraug沒有,只有我更喜歡tmux作爲多路複用器。讓命令正確傳入可能有點棘手,因此創建一個處理細節的shell腳本。

比方說,你在終端開始matlab這樣的:

tmux new -s matlab "matlab -nodesktop -nojvm" 

現在tmux會話稱爲MATLAB運行MATLAB,沒有GUI。

創建這個shell腳本:

MX

#!/bin/bash 

if [[ $# -eq 0 ]]; then 
    while read; do 
    tmux send-keys -t matlab "$REPLY"$'\n' 
    done 
else 
    tmux send-keys -t matlab "[email protected]"$'\n' 
fi 

在不同的終端,你現在可以運行引用MATLAB命令:

mx "A = reshape(1:9, 3, 3)" 

甚至通過傳遞命令管道:

for mat in A B C; do echo "$mat = reshape(1:9, 3, 3)"; done | mx 
3

一個可能性是開始一個screen會話,然後啓動matlab,並從它分離。任何時候你想使用它,只需啓動一個終端並重新連接該屏幕會話。

基本上啓動屏幕(只需在終端鍵入screen),並開始你的matlab會話。然後脫離會話(Ctrl + A然後按D),然後您將返回到您的終端。您可以關閉窗口沒有問題,任何在屏幕上啓動的進程都將繼續運行。無論何時您想再次獲取它(稱爲重新連接會話),只需使用screen -r即可。看看所有其他選項的手冊頁。

請注意,屏幕會話可以有任意數量的窗口,並且您也可以同時具有多個屏幕會話。在網上的一些教程中祝你好運,這是一個非常有用的工具,特別是但不僅限於,如果你連接很多可能需要運行長時間工作的其他系統。