I s sh в машины с общими файлами конфигурации, но с разными версиями tmux, поэтому я стараюсь иметь единую версию, поддерживающую .tmux.conf. Следующее относится к моей машине tmux 2.6.
Моя проблема связана с вложенными ifs или, возможно, вложенными кавычками.
следующий код скрывает строку состояния, когда присутствует только одно окно:
if -F '#{==:#{session_windows},1}' 'set -g status off' 'set -g status on'; \
set-hook -g window-linked 'if -F "#{==:#{session_windows},1}" "set -g status off" "set -g status on"'; \
set-hook -g window-unlinked 'if -F "#{==:#{session_windows},1}" "set -g status off" "set -g status on"';
однако мой контроль версий, который добавляет двойные кавычки вокруг строк с одинарными кавычками, прерывает это
if-shell -b '[ "$(echo "$TMUX_VERSION >= 2.1" | bc)" = 1 ]' " \
if -F '#{==:#{session_windows},1}' 'set -g status off' 'set -g status on'; \
set-hook -g window-linked 'if -F "#{==:#{session_windows},1}" "set -g status off" "set -g status on"'; \
set-hook -g window-unlinked 'if -F "#{==:#{session_windows},1}" "set -g status off" "set -g status on"'; \
"
tmux запускается без ошибок, но строка состояния не скрывается.