簡體   English   中英

在已經運行的會話上使用matlab命令(來自bash /命令行)

[英]matlab command (from bash / command line) on an already running session

$ matlab -nodesktop -nojvm &

我如何在剛剛創建的會話上執行matlab命令?

換句話說,我希望在后台運行matlab會話,並在任何給定時間從任意終端執行matlab命令和/或腳本,而無需創建新會話。

我會建議像carandraug那樣的類似解決方案,只是我更喜歡tmux作為多路復用器。 獲取正確傳遞的命令可能有點棘手,因此創建一個處理細節的shell腳本。

假設您已經在這樣的終端中啟動了matlab

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

現在,一個名為matlab的tmux會話正在運行沒有gui的matlab。

創建這個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 "$@"$'\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

一種可能性是啟動一個屏幕會話,然后在其上啟動matlab,並從中分離。 無論何時你想使用它,只需啟動一個終端並重新連接該屏幕會話。

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

請注意,屏幕會話可以包含任意數量的窗口,您還可以同時擁有多個屏幕會話。 祝你好運一些在線教程,這是一個非常有用的工具,特別是但不僅如此,如果你將很多東西連接到可能需要長時間工作的其他系統上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM