tmuxスクリプトを作成して起動されたコマンドを終了した後、どのようにシェルに入りますか?

tmuxスクリプトを作成して起動されたコマンドを終了した後、どのようにシェルに入りますか?

私はフォローアップをしています。このチュートリアルtmux ウィンドウ生成を作成するためのスクリプトです。

tmux new-window t $SESSION:0 -k -n MAIN 'cd ~/main/ && perl -Ilib myapp'

時にはtmuxを起動した後、myappを終了してそのディレクトリのシェルに戻りたいのですが、これはウィンドウを完全に終了させます。この問題を解決するための最良の方法は何ですか?少なくとも1つの答えには、シェルを実行し、そのシェルでコマンドを実行することが含まれていると思いますが、これを行う最善の方法はよくわかりません。

ベストアンサー1

tmux new-window -t $SESSION:0 -k -n MAIN 'cd ~/main/ && perl -Ilib myapp; $SHELL'

デフォルトのシェルは、前のコマンドが終了したときに開始されます(戻り値に関係なく、つまりそのコマンドを終了していない場合でも同様です)。

perlプロセスが終了または失敗したときにのみシェルに入りたい場合(そして成功時にtmuxウィンドウを閉じるには)、次のようにします。

tmux new-window -t $SESSION:0 -k -n MAIN 'cd ~/main/ && perl -Ilib myapp || $SHELL'

おすすめ記事