[英]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.