Bash

用於啟動分離的 tmux 會話、執行腳本並保持 tmux 會話活動的 Ba sh 腳本

  • October 4, 2021

我想編寫一個 bash 腳本,它將:

  • 啟動一個新的 tmux 會話並執行一個腳本
  • 附在它上面
  • 腳本執行完成後不退出

我試過這個:

tmux new -d -s my_session '$SHELL -c " sleep 1; echo please dont exit after echo; sleep 1;"'
tmux attach -t my_session

但這會在腳本完成執行後退出。如何使會話保持活動狀態,以便我可以附加和執行更多腳本?

您可以執行以下操作之一:

  • 在命令之後執行一個 shell:tmux new -dsmy_session 'mycommand; exec $SHELL'
  • 讓 tmux 啟動一個 shell,然後輸入以下命令send-keystmux new -dsmy_session \; send mycommand Enter

您也可以設置該remain-on-exit選項,但是當您使用命令創建會話時這樣做很棘手,因為該命令可能會在您設法設置它之前退出。

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