この投稿のタイトルが十分に説明されていることを願っています。
tmuxのマニュアルでよく説明されているように、tmux
新しいtmuxウィンドウまたはウィンドウ(分割)が開始されるたびにログインシェルが起動します。
tmux
代わりに、セッションごとに1つのログインシェル(おそらく最初のウィンドウ)のみが起動され、その後に作成されるすべてのウィンドウ/ウィンドウは、非ログインシェルになるように設定するにはどうすればよいですか?
~/.bash_profile
これが不可能な場合は、少なくともサーバーの起動時または読み取るようにtmuxを設定できますが、~/.profile
サーバーで起動されたすべてのウィンドウは通常のtmux
(非ログイン)シェルでなければなりませんか?
答え1
ラッパースクリプトのTmuxオプションを使用できますdefault-command
。私はしばらく次の配列をうまく使用してきました。
PATH
たとえば、次のスクリプトをどこかに置きます。/usr/local/bin/tmux-default-command
#!/bin/sh default_shell=$(tmux show-options -gqv default-shell) default_shell=${default_shell:-$SHELL} default_shell=${default_shell:-/bin/bash} current_window=$(tmux display-message -p '#I') if [ "$current_window" = "0" ]; then tmux rename-window "Hello" && exec "$default_shell" -l else exec "$default_shell" fi
Tmux設定で
default-shell = '/bin/bash' # optional default-command = 'tmux-default-command'
-HTH