Bash

腳本完成後終止 tmux 會話

  • February 22, 2021

我有一個bash腳本,用於在tmux會話中執行腳本。它看起來像這樣:

#!/bin/bash
session="myjob"
tmux new-session -d -s $session
tmux send-keys 'myscript' 'C-m'

問題是myscript完成後,會話myjob仍然存在。我想在myscript完成後自動殺死它。我試過了:

#!/bin/bash
session="myjob"
tmux new-session -d -s $session
tmux send-keys 'myscript' 'C-m'
tmux kill-session -t $session

但這myscript完全跳過並直接終止會話。

你應該能夠做到:

tmux send-keys 'exec myscript' 'C-m'

這樣,shell 將exec成為腳本(即,myscript將替換 shell 程序,而不是從一個孩子開始)。然後,當該程序終止時,它將是tmux執行的程序,因此tmux將在它之後進行清理。

引用自:https://unix.stackexchange.com/questions/635875