この質問は非常に簡単ですが、片側ではどのように機能し、もう一方では機能しないかを知る必要があります。 tmuxが閉じられたときにsshセッションを終了するには、次のリンクに提案された答えを使用しました。https://stackoverflow.com/a/17465215
/etc/zsh/zprofileに同じコードを配置しましたが、うまくいきますが、/etc/profileに同じコードを配置すると、sshログイン直後にtmuxセッションが終了します。何が起こっていますか?
PS:問題のコードは次のとおりです。
if [[ -z $TMUX && -n $SSH_TTY ]]; then
exec tmux -2 new-session -s $TTY
fi
答え1
あなたの構文は有効なシェルではありません。 2つの異なる独立したシェルコマンドを接続するか、コマンド&&
では使用できません。テストのいくつかのバージョンが提供され使用されます。test
[
[[
-a
-o
そしてそしてまたは、一部はそうではありません。
また/etc/profile
、.d
ディストリビューションにディレクトリがある場合は、そのディレクトリもすべてのPOSIXシェルで実行可能である必要があります。そのため、[[
POSIXにないものはPOSIXでは許可されず、/etc/profile
問題が発生する可能性があります。
POSIX 互換方式で作成するには、/etc/profile
次のように書くことができます。
if [ -z "$TMUX" ] && [ -n "$SSH_TTY" ]; then
exec tmux -2 new-session -s "$TTY"
fi